В този урок ще научите за оператора if (включително if … else и вложен if … else) в програмирането на C с помощта на примери.
C if Изявление
Синтаксисът на if
израза в програмирането на C е:
if (test expression) ( // statements to be executed if the test expression is true )
Как ако операторът работи?
Операторът if
оценява тестовия израз в скобите ()
.
- Ако тестовият израз е оценен на истина,
if
изпълняват се изрази в тялото на . - Ако тестовият израз е оценен на false, изрази в тялото на
if
не се изпълняват.
За да научите повече за това кога тестовият израз се оценява на true (ненулева стойност) и false (0), проверете релационните и логическите оператори.
Пример 1: оператор 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; )
Изход 1
Въведете цяло число: -2 Въведохте -2. Изявлението if е лесно.
Когато потребителят въведе -2, тестовият израз number<0
се оценява на true. Следователно въведеното от вас -2 се показва на екрана.
Изход 2
Въведете цяло число: 5 Операторът if е лесен.
Когато потребителят въведе 5, тестовият израз number<0
се оценява на false и изразът вътре в тялото на if
не се изпълнява
C if… else Изявление
В if
изявлението може да има допълнителен else
блок. Синтаксисът на if… else
изявлението е:
if (test expression) ( // statements to be executed if the test expression is true ) else ( // statements to be executed if the test expression is false )
Как ако… друго изявление работи?
Ако тестовият израз е оценен на true,
if
се изпълняват изявления в тялото на .- изявления вътре в тялото на
else
се пропускат от изпълнение.
Ако тестовият израз е оценен на false,
else
се изпълняват изявления в тялото на- изявления вътре в тялото на
if
се пропускат от изпълнение.
Пример 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; )
Изход
Въведете цяло число: 7 7 е нечетно цяло число.
Когато потребителят въведе 7, тестовият израз number%2==0
се оценява на false. Следователно, изявлението вътре в тялото на else
се изпълнява.
C ако … друго Стълба
Операторът if… else
изпълнява два различни кода в зависимост от това дали тестовият израз е true или false. Понякога трябва да се направи избор от повече от 2 възможности.
Стълбата if … else ви позволява да проверявате между множество тестови изрази и да изпълнявате различни изрази.
Синтаксис на if … else Стълба
if (test expression1) ( // statement(s) ) else if(test expression2) ( // statement(s) ) else if (test expression3) ( // statement(s) )… else ( // statement(s) )
Пример 3: C ако … друго Стълба
// 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; )
Изход
Въведете две цели числа: 12 23 Резултат: 12 <23
Вложено, ако … друго
Възможно е да включите if… else
изявление в тялото на друго if… else
изявление.
Пример 4: Вложен, ако … друго
Тази програма, дадена по-долу, свързва две цели числа, използващи едното <
, >
и =
подобно if… else
на примера на стълбата. За if… else
да разрешим този проблем обаче, ще използваме вложен оператор.
#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; )
Ако тялото на if… else
изявление има само един израз, не е необходимо да използвате скоби ()
.
Например този код
if (a> b) ( print("Hello"); ) print("Hi");
е еквивалентно на
if (a> b) print("Hello"); print("Hi");