Въпрос за if-else конструкциите
Въпорса ми е следния. Как мога да въвеждам ограничения на условието? Например "над 10 и под 50".
Въпорса ми е следния. Как мога да въвеждам ограничения на условието? Например "над 10 и под 50".
Ако питаш за ограничения в един if statement така
int someNumber = 30;
If(someNumber > 10 && someNumber < 50) {
//TODO
}
С оператора && казваш следното - изпълно този код (//TODO) ако someNumber > 10 и someNumber< 50.
За това което си мисля, че искаш да направиш не ти трябва if-else конструкция, но ако дадеш конкретен проблем ще съм по-сигурен в отговора си :)
Ето пример за if else:
if (n < 100)
{
Console.WriteLine("Less than 100"); // Ако Н е по малко от 100
}
else if (n >= 100 && n <= 200)
{
Console.WriteLine("Between 100 and 200"); // Ако Н е между 100 и 200
}
else
{
Console.WriteLine("Greater than 200"); // При всеки друг случай
}
Когато искаш да имаш един "Блок код " с последователни проверки исползваш if > else if > else if ... else
Ако искаш да имаш много индивидуални проверки тогава си ползвай само if > if ....
Здравей,
на кратко за if и if else имаш няколко възможности.
if(boolean_expression)
{
/* statement(s) will execute if the boolean expression is true */
}
else
{
/* statement(s) will execute if the boolean expression is false */
}
Това е стандартното използване на if - else. Ако дадено условие е изпълнено се изпълнява едната част от кода, в противен случай- другата.
Имаш възможност и за по- сложни проверки.
f(boolean_expression 1)
{
/* Executes when the boolean expression 1 is true */
}
else if( boolean_expression 2)
{
/* Executes when the boolean expression 2 is true */
}
else if( boolean_expression 3)
{
/* Executes when the boolean expression 3 is true */
}
else
{
/* executes when the none of the above condition is true */
}
Тук на практика става следното. Проверява се първото условие, само ако не е изпълнено се проверява второто, след това при невярно условие две, се проверява третото.
Тук е важно да обърнеш внимание, че булевият израз може да е сложен. На негово място може да слагаш , както единични изрази от рода на a==b, така може да поставяш и доста по-сложни изрази стига резултатът им да е bool.
Прилагам ти и пример, за операторите за сравняване.
|
Less than < |
|
|
Greater than > |
|
|
Less than or equal to <= |
|
|
Greater than or equal to >= |
|
|
Equality operator == |
|
|
Inequality operator != |
|
Като може и да слагаш по някалко условия на мястото на bool expression, като ги обединяваш с логически оператори- И , ИЛИ и тн.
&& | Called Logical AND operator. If both the operands are non zero then condition becomes true. | (A && B) is false. |
|| | Called Logical OR Operator. If any of the two operands is non zero then condition becomes true. | (A || B) is true. |
! | Called Logical NOT Operator. Use to reverses the logical state of its operand. If a condition is true then Logical NOT operator will make false. | !(A && B) is true. |
Надявам се да съм бил полезен.
Успех
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _100___200
{
class Program
{
static void Main(string[] args)
{
int number = int.Parse(Console.ReadLine());
if (number < 100)
{
Console.WriteLine("Less than 100");
}
if (number > 100 && number < 200)
{
Console.WriteLine("Between 100 and 200");
}
if (number > 200)
{
Console.WriteLine("Greater than 200");
}
}
}
}
Работи перфектно, но jundge-a ми дава 80/100. Пробвах входовете, които са дадени в условието и всичко беше точно
Промени number >= 100 и number >= 200 (втора и трета проверка). Само тия две стойности не ги покриваш като гледам, и най-вероятно там гърми
Като не вземеш пълния брой точки, отваряй Deatils в джъджа, за да видиш къде са ти проблемите.