V tomto článku se naučíme, jak používat příkaz if, if … else, if … else if v C # k řízení toku provádění našeho programu.
Testování podmínky je v programování nevyhnutelné. Často budeme čelit situacím, kdy musíme testovat podmínky (ať už jsou true
nebo jsou false
), abychom mohli kontrolovat tok programu. Tyto podmínky mohou být ovlivněny vstupem uživatele, časovým faktorem, aktuálním prostředím, kde je spuštěn program atd.
V tomto článku se naučíme testovat podmínky pomocí příkazu if v C #.
Příkaz C # if (if-then)
Příkaz C # if-then provede blok kódu, pokud je daná podmínka pravdivá. Syntaxe příkazu if-then v C # je:
if (boolean-expression) (// příkazy provedené, pokud je logický výraz true)
- Logický výraz vrátí buď true, nebo
false
. - Pokud se booleovský výraz vrátí
true
, budou provedeny příkazy uvnitř těla if (inside(… )
). - Pokud se booleovský výraz vrátí
false
, budou příkazy uvnitř těla if ignorovány.
Například,
if (number <5) (number + = 5;)
V tomto příkladu prohlášení
číslo + = 5;
bude provedeno, pouze pokud je hodnota čísla menší než 5.
Pamatujete operátor + =?
Jak když prohlášení funguje?
Příklad 1: Příkaz C # if
using System; namespace Conditional ( class IfStatement ( public static void Main(string() args) ( int number = 2; if (number < 5) ( Console.WriteLine("(0) is less than 5", number); ) Console.WriteLine("This statement is always executed."); ) ) )
Když spustíme program, výstup bude:
2 je menší než 5 Toto prohlášení je vždy provedeno.
Hodnota čísla je inicializována na 2. Takže výraz number < 5
je vyhodnocen na true
. Proto se provádí kód uvnitř bloku if. Kód po příkazu if bude vždy proveden bez ohledu na výraz.
Nyní změňte hodnotu čísla na něco většího, než 5
řekněme 10
. Když spustíme program, výstup bude:
Toto prohlášení je vždy provedeno.
Výraz number < 5
se vrátí false
, a proto bude kód uvnitř, pokud nebude proveden blok.
Příkaz C # if … else (if-then-else)
Příkaz if v C # může mít volitelný jiný příkaz. Blok kódu uvnitř příkazu else bude proveden, pokud je výraz vyhodnocen na false
.
Syntaxe příkazu if… else v C # je:
if (boolean-expression) (// příkazy provedené, pokud je logický výraz pravdivý) else (// příkazy provedené, pokud je logický výraz nepravdivý)
Například,
if (number <5) (number + = 5;) else (number - = 5;)
V tomto příkladu prohlášení
číslo + = 5;
bude provedeno, pouze pokud je hodnota čísla menší než 5
.
Prohlášení
číslo - = 5;
bude provedeno, pokud je hodnota čísla větší nebo rovna 5
.
Jak, když … jinak prohlášení funguje?
Příklad 2: Příkaz C # pokud… else
using System; namespace Conditional ( class IfElseStatement ( public static void Main(string() args) ( int number = 12; if (number < 5) ( Console.WriteLine("(0) is less than 5", number); ) else ( Console.WriteLine("(0) is greater than or equal to 5", number); ) Console.WriteLine("This statement is always executed."); ) ) )
Když spustíme program, výstup bude:
12 je větší nebo rovno 5 Tento příkaz je vždy proveden.
Zde je hodnota čísla inicializována na 12
. Výraz number < 5
je tedy vyhodnocen na false
. Proto se provede kód uvnitř bloku else. Kód po příkazu if… else bude vždy proveden bez ohledu na výraz.
Nyní změňte hodnotu čísla na něco menšího než 5
řekněme 2
. Když spustíme program, výstup bude:
2 je menší než 5 Toto prohlášení je vždy provedeno.
Výraz number < 5
se vrátí true, proto bude kód uvnitř, pokud bude spuštěn blok.
Ternární operátor v C # poskytuje zkratku pro příkaz C # if… else.
Příkaz C # if … else if (if-then-else if)
Když máme k testování pouze jednu podmínku, příkaz if-then a if-then-else funguje dobře. Ale co když máme několik podmínek pro testování a provedení jednoho z mnoha bloků kódu.
For such case, we can use if… else if statement in C#. The syntax for if… else if statement is:
if (boolean-expression-1) ( // statements executed if boolean-expression-1 is true ) else if (boolean-expression-2) ( // statements executed if boolean-expression-2 is true ) else if (boolean-expression-3) ( // statements executed if boolean-expression-3 is true )… else ( // statements executed if all above expressions are false )
The if… else if statement is executed from the top to bottom. As soon as a test expression is true
, the code inside of that if ( or else if ) block is executed. Then the control jumps out of the if… else if block.
If none of the expression is true
, the code inside the else block is executed.
Alternatively, we can use switch statement in such condition.
Example 3: C# if… else if Statement
using System; namespace Conditional ( class IfElseIfStatement ( public static void Main(string() args) ( int number = 12; if (number 5) ( Console.WriteLine("(0) is greater than 5", number); ) else ( Console.WriteLine("(0) is equal to 5"); ) ) ) )
When we run the program, the output will be:
12 is greater than 5
The value of number is initialized to 12
. The first test expression number < 5
is false
, so the control will move to the else if block. The test expression number> 5
is true
hence the block of code inside else if will be executed.
Similarly, we can change the value of number
to alter the flow of execution.
Nested if… else Statement
An if… else statement can exist within another if… else statement. Such statements are called nested if… else statement.
The general structure of nested if… else statement is:
if (boolean-expression) (if (nested-expression-1) (// code to be executed) else (// code to be executed)) else (if (nested-expression-2) (// code to be executed) ) else (// kód, který se má provést))
Vnořené, pokud se příkazy obecně používají, když musíme testovat jednu podmínku následovanou druhou. Ve vnořeném příkazu if, pokud vnější příkaz if vrátí hodnotu true, vstoupí do těla, aby zkontroloval vnitřní příkaz if.
Příklad 4: Vnořeno, pokud … else Prohlášení
Následující program vypočítá největší číslo ze 3 čísel pomocí vnořeného příkazu if… else.
using System; namespace Conditional ( class Nested ( public static void Main(string() args) ( int first = 7, second = -23, third = 13; if (first> second) ( if (firstNumber> third) ( Console.WriteLine("(0) is the largest", first); ) else ( Console.WriteLine("(0) is the largest", third); ) ) else ( if (second> third) ( Console.WriteLine("(0) is the largest", second); ) else ( Console.WriteLine("(0) is the largest", third); ) ) ) ) )
Když spustíme program, výstup bude:
13 je největší