V tem članku se bomo naučili, kako uporabiti stavek if, if … else, if … else if v C # za nadzor poteka izvajanja našega programa.
Testiranje stanja je pri programiranju neizogibno. Pogosto se bomo soočili s situacijami, ko moramo preizkusiti pogoje (ali so true
ali false
) za nadzor poteka programa. Na te pogoje lahko vplivajo vnos uporabnika, časovni faktor, trenutno okolje, v katerem se program izvaja itd.
V tem članku se bomo naučili preizkušati pogoje z uporabo stavka if v C #.
Izjava C # if (če-takrat)
Stavek C # if-then bo izvedel blok kode, če je dani pogoj resničen. Sintaksa stavka if-then v C # je:
if (boolean-expression) (// stavki se izvajajo, če je boolean-izraz true)
- Logični izraz bo vrnil true ali
false
. - Če se vrne logični izraz
true
, bodo stavki znotraj telesa if (znotraj(… )
) izvedeni. - Če se vrne logični izraz
false
, bodo stavki znotraj telesa if prezrti.
Na primer
če (število <5) (število + = 5;)
V tem primeru stavek
število + = 5;
se izvede samo, če je vrednost števila manjša od 5.
Se spomnite operaterja + =?
Kako, če stavek deluje?
Primer 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."); ) ) )
Ko zaženemo program, bo rezultat:
2 je manj kot 5 Ta stavek se vedno izvrši.
Vrednost števila je inicializirana na 2. Torej je izraz number < 5
ovrednoten z true
. Zato se koda znotraj bloka if izvrši. Koda za stavkom if se bo vedno izvajala ne glede na izraz.
Zdaj spremenite vrednost številke na nekaj večjega od 5
recimo 10
. Ko zaženemo program, bo rezultat:
Ta izjava se vedno izvrši.
Izraz se number < 5
bo vrnil false
, torej koda znotraj, če blok ne bo izveden.
Izjava C # if … else (if-then-else)
Stavek if v C # ima lahko neobvezen stavek else. Blok kode znotraj stavka else se izvede, če izraz izračunate do false
.
Sintaksa stavka if … else v C # je:
if (boolean-expression) (// stavki se izvajajo, če je boolean-izraz true) else (// stavki se izvajajo, če je boolean-izraz false)
Na primer
if (število <5) (število + = 5;) else (število - = 5;)
V tem primeru stavek
število + = 5;
se izvede samo, če je vrednost števila manjša od 5
.
Izjava
število - = 5;
se izvede, če je vrednost števila večja ali enaka 5
.
Kako, če… druga izjava deluje?
Primer 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."); ) ) )
Ko zaženemo program, bo rezultat:
12 je večje ali enako 5 Ta stavek se vedno izvrši.
Tu se vrednost številke inicializira na 12
. Torej je izraz number < 5
ovrednoten do false
. Zato se koda znotraj bloka else izvede. Koda za stavkom if … else se bo vedno izvedla ne glede na izraz.
Zdaj spremenite vrednost številke na nekaj manj kot 5
recimo 2
. Ko zaženemo program, bo rezultat:
2 je manj kot 5 Ta stavek se vedno izvrši.
Izraz number < 5
bo vrnil true, zato bo koda znotraj, če bo blok izveden.
Ternarni operator v C # ponuja bližnjico do stavka C # if … else.
C # if … else if (if-then-else if) Izjava
Ko imamo samo en pogoj za preizkus, stavek if-then in if-then-else deluje v redu. Kaj pa, če imamo več pogojev za testiranje in izvajanje enega od številnih blokov kode.
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 (ugnezdeni izraz-1) (// koda, ki jo je treba izvesti) else (// koda, ki jo je treba izvesti)) else (if (ugnezdeni izraz-2) (// koda, ki jo je treba izvršiti ) else (// koda za izvedbo))
Vgnezdeno, če se stavki običajno uporabljajo, kadar moramo preizkusiti en pogoj, ki mu sledi drugi. Če ugnezdeni stavek if vrne stavek »zunanji if« true, vstopi v telo, da preveri notranji stavek if.
Primer 4: izjava ugnezdena, če … drugače
Naslednji program izračuna največje število med 3 številkami z uporabo ugnezdenega stavka 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); ) ) ) ) )
Ko zaženemo program, bo rezultat:
13 je največji