W tym samouczku dowiesz się o instrukcji if (w tym if… else i zagnieżdżonej if… else) w programowaniu w języku C na podstawie przykładów.
Instrukcja C if
Składnia ifinstrukcji w programowaniu w C jest następująca:
if (test expression) ( // statements to be executed if the test expression is true )
Jak działa stwierdzenie?
ifOświadczenie oblicza wyrażenie testowy wewnątrz nawiasu ().
- Jeśli wyrażenie testowe ma wartość true,
ifwykonywane są instrukcje wewnątrz treści . - Jeśli wartość wyrażenia testowego jest fałszywa, instrukcje wewnątrz treści
ifnie są wykonywane.

Aby dowiedzieć się więcej o tym, kiedy wyrażenie testowe jest oceniane jako prawda (wartość niezerowa) i fałsz (0), sprawdź operatory relacyjne i logiczne.
Przykład 1: instrukcja 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; )
Wyjście 1
Wpisz liczbę całkowitą: -2 Wprowadziłeś -2. Instrukcja if jest łatwa.
Gdy użytkownik wprowadzi -2, wyrażenie testowe number<0jest oceniane jako prawda. W związku z tym na ekranie jest wyświetlane wpisane -2.
Wyjście 2
Wpisz liczbę całkowitą: 5 Instrukcja if jest łatwa.
Gdy użytkownik wprowadzi 5, wyrażenie testowe number<0jest oceniane jako false, a instrukcja wewnątrz treści ifnie jest wykonywana
C if… else Statement
ifStwierdzenie może mieć opcjonalny elseblok. Składnia if… elseinstrukcji to:
if (test expression) ( // statements to be executed if the test expression is true ) else ( // statements to be executed if the test expression is false )
A jeśli… else zdanie działa?
Jeśli wyrażenie testowe ma wartość true,
ifwykonywane są instrukcje wewnątrz treści .- instrukcje wewnątrz treści
elsesą pomijane podczas wykonywania.
Jeśli wyrażenie testowe ma wartość false,
elsewykonywane są instrukcje wewnątrz treści- instrukcje wewnątrz treści
ifsą pomijane podczas wykonywania.

Przykład 2: instrukcja 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; )
Wynik
Wpisz liczbę całkowitą: 7 7 to nieparzysta liczba całkowita.
Gdy użytkownik wprowadzi 7, wyrażenie testowe number%2==0jest oceniane jako fałszywe. W związku z tym elsewykonywana jest instrukcja wewnątrz treści .
C jeśli… else Drabina
if… elseOświadczenie wykonuje dwa różne kody zależności od tego czy wyrażenie test jest prawdziwe, czy fałszywe. Czasami trzeba wybrać więcej niż dwie możliwości.
Drabina if… else pozwala na sprawdzanie między wieloma wyrażeniami testowymi i wykonywanie różnych instrukcji.
Składnia if… else Ladder
if (test expression1) ( // statement(s) ) else if(test expression2) ( // statement(s) ) else if (test expression3) ( // statement(s) )… else ( // statement(s) )
Przykład 3: C if… else Ladder
// 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; )
Wynik
Wprowadź dwie liczby całkowite: 12 23 Wynik: 12 <23
Zagnieżdżone, jeśli… else
Możliwe jest umieszczenie if… elseinstrukcji w treści innej if… elseinstrukcji.
Przykład 4: Zagnieżdżone, jeśli… else
Ten program podany poniżej dotyczy dwóch liczb całkowitych stosując albo <, >i =podobny do if… elseprzykładu na drabinie. Jednak if… elsedo rozwiązania tego problemu użyjemy instrukcji zagnieżdżonej .
#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; )
Jeśli treść if… elseinstrukcji zawiera tylko jedną instrukcję, nie musisz używać nawiasów ().
Na przykład ten kod
if (a> b) ( print("Hello"); ) print("Hi");
jest równa
if (a> b) print("Hello"); print("Hi");








