C++ если, если... еще и вложенный, если... еще
C++ if, if...else и вложенный if...else
В этом руководстве мы узнаем об операторе if...else для создания программ принятия решений с помощью примеров.
В компьютерном программировании мы используем if...else оператор для запуска одного блока кода при определенных условиях и другого блока кода при других условиях.
Например, выставление оценок (A, B, C) на основе оценок, полученных учащимся.
- если процент выше 90 , поставьте оценку A
- если процент выше 75 , поставьте оценку B
- если процент выше 65 , присвоить оценку C
Существует три формы if...else операторы на C++.
ifзаявлениеif...elseзаявлениеif...else if...elseзаявление
С++ оператор if
Синтаксис if утверждение:
if (condition) {
// body of if statement
} if оператор оценивает condition внутри круглых скобок ( ) .
- Если
conditionоценивается какtrue, код внутри телаifвыполняется. - Если
conditionоценивается какfalse, код внутри телаifпропускается.
Примечание. Код внутри { } это тело if заявление.
<час> Пример 1. Оператор C++ if
// Program to print positive number entered by the user
// If the user enters a negative number, it is skipped
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
// checks if the number is positive
if (number > 0) {
cout << "You entered a positive integer: " << number << endl;
}
cout << "This statement is always executed.";
return 0;
} Выход 1
Enter an integer: 5 You entered a positive number: 5 This statement is always executed.
Когда пользователь вводит 5 , условие number > 0 оценивается как true и оператор внутри тела if выполняется.
Вывод 2
Enter a number: -5 This statement is always executed.
Когда пользователь вводит -5 , условие number > 0 оценивается как false и оператор внутри тела if не выполняется.
С++, если... еще
if оператор может иметь необязательный else пункт. Его синтаксис:
if (condition) {
// block of code if condition is true
}
else {
// block of code if condition is false
} if..else оператор оценивает condition внутри скобок.
Если condition оценивает true ,
- код внутри тела
ifвыполняется - код внутри тела
elseпропускается из выполнения
Если condition оценивает false ,
- код внутри тела
elseвыполняется - код внутри тела
ifпропускается из выполнения
Пример 2. Оператор C++ if...else
// Program to check whether an integer is positive or negative
// This program considers 0 as a positive number
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
if (number >= 0) {
cout << "You entered a positive integer: " << number << endl;
}
else {
cout << "You entered a negative integer: " << number << endl;
}
cout << "This line is always printed.";
return 0;
} Выход 1
Enter an integer: 4 You entered a positive integer: 4. This line is always printed.
В приведенной выше программе у нас есть условие number >= 0 . Если мы введем число больше или равное 0 , тогда условие оценивает true .
Здесь мы вводим 4 . Итак, условие true . Следовательно, оператор внутри тела if выполняется.
Вывод 2
Enter an integer: -4 You entered a negative integer: -4. This line is always printed.
Здесь мы вводим -4 . Итак, условие false . Следовательно, оператор внутри тела else выполняется.
С++ оператор if...else...else if
if...else оператор используется для выполнения блока кода среди двух альтернатив. Однако, если нам нужно сделать выбор между более чем двумя альтернативами, мы используем if...else if...else заявление.
Синтаксис if...else if...else утверждение:
if (condition1) {
// code block 1
}
else if (condition2){
// code block 2
}
else {
// code block 3
} Здесь
- Если
condition1оценивается какtrue,code block 1выполняется. - Если
condition1оценивается какfalse, затемcondition2оценивается. - Если
condition2этоtrue,code block 2выполняется. - Если
condition2этоfalse,code block 3выполняется.
Примечание. Может быть более одного else if оператор, но только один if и else заявления.
Пример 3:C++ if...else...else if
// Program to check whether an integer is positive, negative or zero
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
if (number > 0) {
cout << "You entered a positive integer: " << number << endl;
}
else if (number < 0) {
cout << "You entered a negative integer: " << number << endl;
}
else {
cout << "You entered 0." << endl;
}
cout << "This line is always printed.";
return 0;
} Выход 1
Enter an integer: 1 You entered a positive integer: 1. This line is always printed.
Вывод 2
Enter an integer: -2 You entered a negative integer: -2. This line is always printed.
Выход 3
Enter an integer: 0 You entered 0. This line is always printed.
В этой программе мы берем число от пользователя. Затем мы используем if...else if...else лестнице, чтобы проверить, является ли число положительным, отрицательным или нулевым.
Если число больше 0 , код внутри if блок выполняется. Если число меньше 0 , код внутри else if блок выполняется. В противном случае код внутри else блок выполняется.
Вложенный C++ if...else
Иногда нам нужно использовать if оператор внутри другого if утверждение. Это известно как вложенный if. заявление.
Думайте об этом как о нескольких слоях if. заявления. Есть первый внешний if оператор, а внутри него другой, внутренний if утверждение. Его синтаксис:
// outer if statement
if (condition1) {
// statements
// inner if statement
if (condition2) {
// statements
}
} Примечания:
- Мы можем добавить
elseиelse ifоператоры во внутреннийifзаявление по мере необходимости. - Внутренний
ifоператор также может быть вставлен во внешнийelseилиelse ifзаявления (если они существуют). - Мы можем вложить несколько слоев
ifзаявления.
Пример 4. Вложенные операторы C++ if
// C++ program to find if an integer is positive, negative or zero
// using nested if statements
#include <iostream>
using namespace std;
int main() {
int num;
cout << "Enter an integer: ";
cin >> num;
// outer if condition
if (num != 0) {
// inner if condition
if (num > 0) {
cout << "The number is positive." << endl;
}
// inner else condition
else {
cout << "The number is negative." << endl;
}
}
// outer else condition
else {
cout << "The number is 0 and it is neither positive nor negative." << endl;
}
cout << "This line is always printed." << endl;
return 0;
} Выход 1
Enter an integer: 35 The number is positive. This line is always printed.
Вывод 2
Enter an integer: -35 The number is negative. This line is always printed.
Выход 3
Enter an integer: 0 The number is 0 and it is neither positive nor negative. This line is always printed.
В приведенном выше примере
- Мы принимаем целое число от пользователя и сохраняем его в переменной num. .
- Затем мы используем
if...elseоператор, чтобы проверить, не равно ли число0.- Если
true, затем внутреннийif...elseоператор выполняется. - Если
false, код внутри внешнегоelseвыполняется условие, которое печатает"The number is 0 and it is neither positive nor negative."
- Если
- внутренний
if...elseоператор проверяет, является ли введенное число положительным, т. е. если num больше 0 .- Если
true, то мы печатаем заявление о том, что число положительное. - Если
false, мы печатаем, что число отрицательное.
- Если
Примечание. Как видите, вложенный if...else усложняет вашу логику. Если возможно, вы всегда должны избегать вложенных if...else. .
Основная часть if...else только с одним оператором
Если тело if...else имеет только один оператор, вы можете опустить { } в программе. Например, вы можете заменить
int number = 5;
if (number > 0) {
cout << "The number is positive." << endl;
}
else {
cout << "The number is negative." << endl;
} с
int number = 5;
if (number > 0)
cout << "The number is positive." << endl;
else
cout << "The number is negative." << endl; Вывод обеих программ будет одинаковым.
Примечание. Хотя нет необходимости использовать { } если тело if...else имеет только один оператор, используя { } делает ваш код более читабельным.
Подробнее о принятии решений
В определенных ситуациях тройной оператор может заменить if...else утверждение. Чтобы узнать больше, посетите тернарный оператор C++.
Если нам нужно сделать выбор между несколькими альтернативами на основе заданного условия теста, switch заявление можно использовать. Чтобы узнать больше, посетите переключатель C++.
Посмотрите эти примеры, чтобы узнать больше:
Программа C++ для проверки четности или нечетности числа
Программа C++ для проверки того, является ли символ гласным или согласным.
Программа C++ для поиска наибольшего числа среди трех чисел
Язык C
- C# if, if...else, if...else if и вложенный оператор if
- Классы и объекты С++
- Управление памятью C++:создание и удаление
- Публичное, защищенное и частное наследование C++
- Дружественные функции C++ и дружественные классы
- Оператор Python, отступы и комментарии
- Вложенный и внутренний класс Java
- Дата и время С++
- Перегрузка C++ (оператор и функция)
- Файлы и потоки C++