C pokud ... else Prohlášení

V tomto tutoriálu se pomocí příkladů dozvíte o příkazu if (včetně if… else a vnořeného if… else) v programování C.

C pokud prohlášení

Syntaxe ifpříkazu v programování C je:

 if (test expression) ( // statements to be executed if the test expression is true )

Jak když prohlášení funguje?

Příkaz ifvyhodnotí testovací výraz uvnitř závorky ().

  • Pokud je testovací výraz vyhodnocen na true, ifjsou prováděny příkazy uvnitř těla .
  • Pokud je testovací výraz vyhodnocen jako nepravdivý, příkazy uvnitř těla ifse neprovedou.

Chcete-li se dozvědět více o tom, kdy je testovací výraz vyhodnocen na true (nenulová hodnota) a false (0), zkontrolujte relační a logické operátory.

Příklad 1: příkaz if

 // 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ýstup 1

Zadejte celé číslo: -2 Zadali jste -2. Příkaz if je snadný.

Když uživatel zadá -2, je testovací výraz number<0vyhodnocen na true. Proto jste na obrazovce zadali hodnotu -2.

Výstup 2

 Zadejte celé číslo: 5 Příkaz if je snadný.

Když uživatel zadá 5, testovací výraz number<0se vyhodnotí jako false a příkaz uvnitř těla ifse neprovede

C pokud … jiné prohlášení

ifProhlášení může mít volitelný elseblok. Syntaxe if… elsepříkazu je:

 if (test expression) ( // statements to be executed if the test expression is true ) else ( // statements to be executed if the test expression is false )

Jak, když … else prohlášení funguje?

Pokud je testovací výraz vyhodnocen na true,

  • ifjsou prováděny příkazy uvnitř těla .
  • příkazy uvnitř těla elsejsou přeskočeny z provedení.

Pokud je testovací výraz vyhodnocen jako nepravdivý,

  • elsejsou prováděny příkazy uvnitř těla
  • příkazy uvnitř těla ifjsou přeskočeny z provedení.

Příklad 2: if… else

 // 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ýstup

 Zadejte celé číslo: 7 7 je liché celé číslo.

Když uživatel zadá 7, testovací výraz number%2==0se vyhodnotí jako nepravdivý. Proto je proveden příkaz uvnitř těla else.

C pokud … jinak Žebřík

Příkaz if… elseprovede dva různé kódy podle toho, zda je testovací výraz pravdivý nebo nepravdivý. Někdy je třeba zvolit z více než 2 možností.

Žebřík if… else umožňuje kontrolovat mezi více testovacími výrazy a provádět různé příkazy.

Syntaxe if … else Ladder

 if (test expression1) ( // statement(s) ) else if(test expression2) ( // statement(s) ) else if (test expression3) ( // statement(s) )… else ( // statement(s) )

Příklad 3: C pokud … jinak Žebřík

 // 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ýstup

 Zadejte dvě celá čísla: 12 23 Výsledek: 12 <23

Vnořeno, pokud … jinak

Je možné zahrnout if… elsepříkaz do těla jiného if… elsepříkazu.

Příklad 4: Vnořeno, pokud … jinak

Tento program uveden dále týká dvě celá čísla za použití buď <, >a =podobně jako v if… elsepříkladu žebříkové. K if… elsevyřešení tohoto problému však použijeme vnořený příkaz.

 #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; )

Pokud má tělo if… elsepříkazu pouze jeden příkaz, nemusíte používat závorky ().

Například tento kód

 if (a> b) ( print("Hello"); ) print("Hi");

je ekvivalentní k

 if (a> b) print("Hello"); print("Hi"); 

Zajímavé články...