C if ... else Изявление

В този урок ще научите за оператора 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"); 

Интересни статии...