В этом руководстве вы узнаете об операторе 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
выполняются операторы внутри тела . - Если тестовое выражение оценивается как ложное, операторы внутри тела
if
не выполняются.
Чтобы узнать больше о том, когда тестовое выражение оценивается как истинное (ненулевое значение) и ложное (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
оценивается как истинное. Следовательно, на экране отображается введенное вами значение -2.
Выход 2
Введите целое число: 5 Оператор if прост.
Когда пользователь вводит 5, тестовое выражение number<0
оценивается как ложное, а оператор внутри тела 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 )
Как если… иначе работает оператор?
Если тестовое выражение оценивается как истинное,
- операторы внутри тела
if
выполняются. - операторы внутри тела
else
пропускаются из выполнения.
Если тестовое выражение оценивается как ложное,
- операторы внутри тела
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
оценивается как ложное. Следовательно, выполняется инструкция внутри тела else
.
C if… else Лестница
if… else
Выражение выполняется два разных кода в зависимости от того , выражение теста является истинным или ложным. Иногда приходится делать выбор из более чем двух возможностей.
Релейная диаграмма if… else позволяет вам проверять между несколькими тестовыми выражениями и выполнять разные инструкции.
Синтаксис if… else Ladder
if (test expression1) ( // statement(s) ) else if(test expression2) ( // statement(s) ) else if (test expression3) ( // statement(s) )… else ( // statement(s) )
Пример 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; )
Вывод
Введите два целых числа: 12 23 Результат: 12 <23
Вложенный if… else
Можно включить if… else
оператор в тело другого if… else
оператора.
Пример 4: Вложенный if… else
Эта программа, приведенная ниже, связывает два целых числа, используя любое из них <
, >
и =
аналогично 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");