U ovom ćemo članku naučiti kako koristiti naredbu if, if … else, if … else if u C # za kontrolu tijeka izvršavanja našeg programa.
Testiranje stanja neizbježno je u programiranju. Često će se suočiti sa situacijama gdje moramo uvjetima testiranja (da li je true
ili false
) za kontrolu toka programa. Na ove uvjete može utjecati unos korisnika, faktor vremena, trenutno okruženje u kojem se program izvodi itd.
U ovom ćemo članku naučiti testirati uvjete pomoću naredbe if u C #.
Izjava C # ako (ako-tada)
Izjava C # if-then izvršit će blok koda ako je zadani uvjet istinit. Sintaksa naredbe if-then u C # je:
if (boolean-expression) (// izrazi se izvršavaju ako je boolean-izraz tačno)
- Logički izraz vratit će ili true ili
false
. - Ako se logički izraz vrati
true
,(… )
izvršit će se izrazi unutar tijela if (unutra ). - Ako se logički izraz vrati
false
, izrazi unutar tijela if bit će zanemareni.
Na primjer,
if (broj <5) (broj + = 5;)
U ovom primjeru izjava
broj + = 5;
izvršit će se samo ako je vrijednost broja manja od 5.
Sjećate se operatora + =?
Kako ako izjava djeluje?
Primjer 1: Izjava 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."); ) ) )
Kada pokrenemo program, izlaz će biti:
2 je manje od 5 Ova se izjava uvijek izvršava.
Vrijednost broja inicijalizira se na 2. Dakle, izraz number < 5
se procjenjuje na true
. Stoga se izvršava kôd unutar bloka if. Kôd nakon naredbe if uvijek će se izvršiti bez obzira na izraz.
Sada promijenite vrijednost broja u nešto veće od 5
recimo 10
. Kada pokrenemo program, izlaz će biti:
Ova se izjava uvijek izvršava.
Izraz number < 5
će se vratiti false
, dakle kôd iznutra ako se blok neće izvršiti.
C # if … else (if-then-else) Izjava
Izraz if u C # može imati neobavezni else izraz. Blok koda unutar naredbe else izvršit će se ako se izraz procijeni na false
.
Sintaksa naredbe if … else u C # je:
if (boolean-expression) (// izrazi izvršeni ako je boolean-izraz tačno) else (// izrazi izvršeni ako je boolean-izraz lažan)
Na primjer,
if (broj <5) (broj + = 5;) else (broj - = 5;)
U ovom primjeru izjava
broj + = 5;
izvršit će se samo ako je vrijednost broja manja od 5
.
Izjava
broj - = 5;
izvršit će se ako je vrijednost broja veća ili jednaka 5
.
Kako ako… još Izjava uspije?
Primjer 2: Izjava C # if … 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."); ) ) )
Kada pokrenemo program, izlaz će biti:
12 je veće ili jednako 5 Ova se izjava uvijek izvršava.
Ovdje se vrijednost broja inicijalizira u 12
. Dakle, izraz number < 5
se procjenjuje na false
. Stoga se izvršava kôd unutar bloka else. Kôd nakon naredbe if … else uvijek će se izvršiti bez obzira na izraz.
Sada promijenite vrijednost broja u nešto manje od 5
recimo 2
. Kada pokrenemo program, izlaz će biti:
2 je manje od 5 Ova se izjava uvijek izvršava.
Izraz number < 5
će vratiti true, dakle kôd unutar ako će se blok izvršiti.
Ternarni operator u C # pruža prečac za C # if … else naredbu.
C # if … else if (if-then-else if) Izjava
Kada imamo samo jedan uvjet za testiranje, izjava if-then i if-then-else dobro funkcionira. Ali što ako imamo višestruki uvjet za testiranje i izvršavanje jednog od mnogih blokova koda.
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 (ugniježđeni izraz-1) (// kôd koji treba izvršiti) else (// kôd koji treba izvršiti)) else (if (ugniježđeni izraz-2) (// kôd koji treba izvršiti ) else (// kôd koji treba izvršiti))
Ugniježđene if izjave obično se koriste kada moramo testirati jedan uvjet nakon kojeg slijedi drugi. U ugniježđenom izrazu if, ako vanjski izraz if vrati true, on ulazi u tijelo da provjeri unutarnji izraz if.
Primjer 4: Ugnježđena izjava if … else
Sljedeći program izračunava najveći broj među 3 broja pomoću ugniježđene if … else naredbe.
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); ) ) ) ) )
Kada pokrenemo program, izlaz će biti:
13 je najveći