V tomto článku sa dozvieme, ako používať príkaz if, if … else, if … else if v C # na riadenie toku vykonávania nášho programu.
Testovanie podmienky je v programovaní nevyhnutné. Často sa stretneme so situáciami, keď musíme testovať podmienky (či už sú true
alebo nie false
), aby sme mohli riadiť priebeh programu. Tieto podmienky môžu byť ovplyvnené vstupom používateľa, časovým faktorom, aktuálnym prostredím, kde je program spustený, atď.
V tomto článku sa naučíme testovať podmienky pomocou príkazu if v C #.
Príkaz C # ak (ak-potom)
Príkaz C # if-then vykoná blok kódu, ak je daná podmienka pravdivá. Syntax príkazu if-then v C # je:
if (boolean-expression) (// príkazy vykonané, ak je logický výraz true)
- Booleovský výraz vráti buď true, alebo
false
. - Ak sa booleovský výraz vráti
true
,(… )
vykonajú sa príkazy v tele if (vo vnútri ). - Ak sa boolovský výraz vráti
false
, príkazy v tele if budú ignorované.
Napríklad,
if (number <5) (number + = 5;)
V tomto príklade vyhlásenie
číslo + = 5;
sa vykoná, iba ak je hodnota čísla menšia ako 5.
Pamätáte si na operátor + =?
Ako keď vyhlásenie funguje?
Príklad 1: Prí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."); ) ) )
Keď spustíme program, výstup bude:
2 je menej ako 5 Tento príkaz sa vykoná vždy.
Hodnota čísla je inicializovaná na 2. Takže výraz number < 5
je vyhodnotený na true
. Preto sa vykoná kód vo vnútri bloku if. Kód za príkazom if sa vždy vykoná bez ohľadu na výraz.
Teraz zmeňte hodnotu čísla na niečo väčšie, ako 5
je napr 10
. Keď spustíme program, výstup bude:
Toto vyhlásenie sa vykoná vždy.
Ak sa blok nespustí, number < 5
vráti sa výraz false
, a teda aj kód vo vnútri.
Príkaz C # ak … else (if-then-else)
Príkaz if v C # môže mať voliteľný príkaz else. Blok kódu vo vnútri príkazu else sa vykoná, ak sa výraz vyhodnotí na false
.
Syntax príkazu if … else v C # je:
if (boolean-expression) (// príkazy vykonané, ak je booleovský výraz pravdivý) else (// príkazy vykonané, ak je booleovský výraz nepravdivý)
Napríklad,
if (number <5) (number + = 5;) else (number - = 5;)
V tomto príklade vyhlásenie
číslo + = 5;
sa vykoná, iba ak je hodnota čísla menšia ako 5
.
Výkaz
číslo - = 5;
sa vykoná, ak je hodnota čísla väčšia alebo rovná 5
.
Ako keď … iné vyhlásenie funguje?
Príklad 2: Príkaz C # ak … 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."); ) ) )
Keď spustíme program, výstup bude:
12 je väčšie alebo rovné 5 Tento príkaz sa vykoná vždy.
Tu sa hodnota čísla inicializuje na 12
. Výraz number < 5
sa teda vyhodnotí na false
. Preto sa vykoná kód vo vnútri bloku else. Kód za príkazom if … else bude vždy vykonaný bez ohľadu na výraz.
Teraz zmeňte hodnotu čísla na niečo menšie ako 5
, povedzme 2
. Keď spustíme program, výstup bude:
2 je menej ako 5 Tento príkaz sa vykoná vždy.
Ak number < 5
bude blok vykonaný, výraz vráti hodnotu true, a teda aj kód vo vnútri.
Ternárny operátor v C # poskytuje skratku pre príkaz C #, ak … else.
Príkaz C # ak … else if (if-then-else if)
Keď máme na otestovanie iba jednu podmienku, vyhlásenie if-then a if-then-else funguje dobre. Ale čo keď máme viac podmienok na otestovanie a vykonanie jedného z mnohých blokov 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) (// kód, ktorý sa má vykonať) else (// kód, ktorý sa má vykonať)) else (if (nested-expression-2) (// kód, ktorý sa má vykonať) ) else (// kód, ktorý sa má vykonať))
Vnorené, ak sa príkazy všeobecne používajú, keď musíme testovať jednu podmienku a potom druhú. Vo vnorenom príkaze if, ak vonkajší príkaz if vráti hodnotu true, vstúpi do tela a skontroluje vnútorný príkaz if.
Príklad 4: Vnorené, ak … else Výpis
Nasledujúci program počíta najväčšie číslo z 3 čísel pomocou vnoreného prí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); ) ) ) ) )
Keď spustíme program, výstup bude:
13 je najväčší