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++