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 if
instrukcji 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?
if
Oświadczenie oblicza wyrażenie testowy wewnątrz nawiasu ()
.
- Jeśli wyrażenie testowe ma wartość true,
if
wykonywane są instrukcje wewnątrz treści . - Jeśli wartość wyrażenia testowego jest fałszywa, instrukcje wewnątrz treści
if
nie 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<0
jest 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<0
jest oceniane jako false, a instrukcja wewnątrz treści if
nie jest wykonywana
C if… else Statement
if
Stwierdzenie może mieć opcjonalny else
blok. Składnia if… else
instrukcji 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,
if
wykonywane są instrukcje wewnątrz treści .- instrukcje wewnątrz treści
else
są pomijane podczas wykonywania.
Jeśli wyrażenie testowe ma wartość false,
else
wykonywane są instrukcje wewnątrz treści- instrukcje wewnątrz treści
if
są 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==0
jest oceniane jako fałszywe. W związku z tym else
wykonywana jest instrukcja wewnątrz treści .
C jeśli… else Drabina
if… else
Oś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… else
instrukcji w treści innej if… else
instrukcji.
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… else
przykładu na drabinie. Jednak if… else
do 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… else
instrukcji 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");