Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Освоение условных операторов C++: if, if...else и вложенные if...else

C++ if, if...else и вложенные if...else

В этом уроке мы изучим оператор if...else для создания программ принятия решений с помощью примеров.

В программировании мы используем оператор if...else для выполнения одного блока кода при определенных условиях и другого блока — при других.

Например, присвоение оценок (A, B, C) на основе баллов студента.


В C++ существует три формы операторов if...else.

  1. if оператор
  2. if...else оператор
  3. if...else if...else оператор

Оператор if в C++

Синтаксис оператора if:

if (condition) {
    // тело if
}

Оператор if вычисляет condition внутри скобок ( ).

Примечание: Код внутри { } — это тело оператора if.

Освоение условных операторов C++: if, if...else и вложенные if...else

Пример 1: Оператор if в C++

// Программа для печати положительного числа, введенного пользователем
// Если пользователь вводит отрицательное число, оно игнорируется
#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;
    }
    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 истинно, и выполняется тело if.

Результат 2

Enter a number: -5
This statement is always executed.

Когда пользователь вводит -5, условие number > 0 ложно, и тело if не выполняется.


Оператор if...else в C++

Оператор if может иметь необязательное предложение else. Его синтаксис:

if (condition) {
    // блок кода, если условие истинно
} else {
    // блок кода, если условие ложно
}

Оператор if..else вычисляет condition в скобках.

Освоение условных операторов C++: if, if...else и вложенные if...else

Если condition истинно:

Если condition ложно:


Пример 2: Оператор if...else в C++

// Программа для проверки, является ли целое число положительным или отрицательным
// Эта программа считает 0 положительным числом
#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, условие истинно.

Здесь вводим 4. Условие true. Выполняется тело if.

Результат 2

Enter an integer: -4
You entered a negative integer: -4.
This line is always printed.

Здесь вводим -4. Условие false. Выполняется тело else.


Оператор if...else if...else в C++

Оператор if...else выбирает между двумя альтернативами. Если нужно выбрать из более чем двух альтернатив, используется if...else if...else.

Синтаксис:

if (condition1) {
    // блок кода 1
} else if (condition2){
    // блок кода 2
} else {
    // блок кода 3
}

Здесь:

Освоение условных операторов C++: if, if...else и вложенные if...else

Примечание: Может быть несколько else if, но только один if и один else.


Пример 3: C++ if...else...else if

// Программа для проверки, является ли целое число положительным, отрицательным или нулем
#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.


Вложенные if...else в C++

Иногда нужно использовать оператор if внутри другого if. Это называется вложенным оператором if.

Представьте это как многослойные операторы if. Есть внешний if, а внутри — внутренний. Синтаксис:

// внешний if
if (condition1) {
    // операторы
    // внутренний if
    if (condition2) {
        // операторы
    }
}

Примечания:


Пример 4: Вложенные if в C++

// Программа для определения, является ли целое число положительным, отрицательным или нулем
// с использованием вложенных if
#include <iostream>
using namespace std;
int main() {
    int num;
    cout << "Enter an integer: ";
    cin >> num;
    // внешнее условие if
    if (num != 0) {
        // внутреннее условие if
        if (num > 0) {
            cout << "The number is positive." << endl;
        }
        // внутреннее условие else
        else {
            cout << "The number is negative." << endl;
        }
    }
    // внешнее условие else
    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.

В примере:

Примечание: Как видите, вложенные 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. Подробнее — в уроке C++ Ternary Operator.

Если нужно выбрать между несколькими альтернативами на основе условия, можно использовать switch. Подробнее — в уроке C++ switch.


Посмотрите эти примеры для дополнительного изучения:

C++ Программа проверки четности числа

C++ Программа проверки, является ли символ гласной или согласной

C++ Программа поиска наибольшего из трех чисел

Язык C

  1. Условная логика в C#: if, if-else, if-else-if и вложенные if
  2. Классы и объекты в C++: практическое руководство по объектно-ориентированному программированию
  3. Управление памятью в C++: экспертное использование new и delete
  4. Публичное, защищённое и приватное наследование в C++: подробный разбор
  5. Дружественные функции и классы в C++: мастерство контроля доступа
  6. Операторы, отступы и комментарии в Python: понятное руководство
  7. Вложенные и внутренние классы в Java: типы, примеры и лучшие практики
  8. Полное руководство по дате и времени в C++
  9. Перегрузка в C++: функции и операторы — подробное руководство
  10. Ввод-вывод в файлы в C++: чтение и запись с fstream