Selles õpetuses saate näidete abil teada C-programmeerimises if-lause (sh if … else ja pesastatud, kui … else).
C kui avaldus
if
C-programmeerimise lause süntaks on:
if (test expression) ( // statements to be executed if the test expression is true )
Kuidas siis, kui avaldus töötab?
if
Avaldus hindab test väljend sulgudes ()
.
- Kui testi avaldise väärtuseks on seatud tõene,
if
täidetakse kehasisesed avaldused . - Kui testi avaldise väärtus on vale, siis kehas olevaid väiteid
if
ei täideta.
Kui soovite lisateavet selle kohta, millal testväljendi väärtus on tõene (nullväärtusest erinev) ja väär (0), kontrollige relatsioonilisi ja loogilisi operaatoreid.
Näide 1: if lause
// Program to display a number if it is negative #include int main() ( int number; printf("Enter an integer: "); scanf("%d", &number); // true if number is less than 0 if (number < 0) ( printf("You entered %d.", number); ) printf("The if statement is easy."); return 0; )
Väljund 1
Sisestage täisarv: -2 sisestasite -2. Kui avaldus on lihtne.
Kui kasutaja sisestab -2, number<0
hinnatakse testväljend tõeseks. Seega kuvatakse ekraanil Sisestatud -2.
Väljund 2
Sisestage täisarv: 5 if-lause on lihtne.
Kui kasutaja sisestab 5, number<0
hinnatakse testväljend valeks ja keha sisulist lauset if
ei täideta
C kui … muidu avaldus
if
Avaldus võib olla vabatahtlik else
blokeerida. Avalduse süntaks if… else
on:
if (test expression) ( // statements to be executed if the test expression is true ) else ( // statements to be executed if the test expression is false )
Kuidas siis, kui muidu lause töötab?
Kui testi avaldise väärtus on tõene,
- avaldused keha sees
if
täidetakse. - kehasisesed avaldused
else
jäetakse täitmisest kõrvale.
Kui testväljend on väär,
- avaldused keha sees
else
täidetakse - kehasisesed avaldused
if
jäetakse täitmisest kõrvale.
Näide 2: kui … muu lause
// Check whether an integer is odd or even #include int main() ( int number; printf("Enter an integer: "); scanf("%d", &number); // True if the remainder is 0 if (number%2 == 0) ( printf("%d is an even integer.",number); ) else ( printf("%d is an odd integer.",number); ) return 0; )
Väljund
Sisestage täisarv: 7 7 on paaritu täisarv.
Kui kasutaja sisestab 7, number%2==0
hinnatakse testväljend valeks. Seega täidetakse lause keha sees else
.
C kui … muidu Redel
if… else
Avalduse täidab kahte erinevat koodid sõltuvalt sellest, kas test väljend on õige või vale. Mõnikord tuleb valida rohkem kui kahe võimaluse vahel.
Kui… muu redel võimaldab teil kontrollida mitut testväljendit ja täita erinevaid väiteid.
Kui … muidu redeli süntaks
if (test expression1) ( // statement(s) ) else if(test expression2) ( // statement(s) ) else if (test expression3) ( // statement(s) )… else ( // statement(s) )
Näide 3: C, kui… muidu Redel
// Program to relate two integers using =,> or < symbol #include int main() ( int number1, number2; printf("Enter two integers: "); scanf("%d %d", &number1, &number2); //checks if the two integers are equal. if(number1 == number2) ( printf("Result: %d = %d",number1,number2); ) //checks if number1 is greater than number2. else if (number1> number2) ( printf("Result: %d> %d", number1, number2); ) //checks if both test expressions are false else ( printf("Result: %d < %d",number1, number2); ) return 0; )
Väljund
Sisestage kaks täisarvu: 12 23 Tulemus: 12 <23
Pesastatud, kui … muidu
Lauset on võimalik lisada if… else
teise if… else
lause kehasse .
Näide 4: Pesitud, kui … muul juhul
See programm allpool käsitleb kahe täisarvu kasutades kas <
, >
ja =
sarnane if… else
redel eeskuju. if… else
Selle probleemi lahendamiseks kasutame aga pesastatud lauset.
#include int main() ( int number1, number2; printf("Enter two integers: "); scanf("%d %d", &number1, &number2); if (number1>= number2) ( if (number1 == number2) ( printf("Result: %d = %d",number1,number2); ) else ( printf("Result: %d> %d", number1, number2); ) ) else ( printf("Result: %d < %d",number1, number2); ) return 0; )
Kui if… else
avaldise kehas on ainult üks lause, ei pea te sulgusid kasutama ()
.
Näiteks see kood
if (a> b) ( print("Hello"); ) print("Hi");
on samaväärne
if (a> b) print("Hello"); print("Hi");