Elementor Header #8

50. Конструкция if-else

1. Введение

Конструкция if-else в C++ позволяет программе принимать решения на основе условий и выполнять различные блоки кода в зависимости от того, истинно ли условие. Это один из самых важных и часто используемых инструментов для управления потоком выполнения программы.

2. Основы конструкции if-else

Конструкция if-else используется, когда необходимо выполнить один блок кода, если условие истинно, и другой блок кода, если условие ложно.

Синтаксис конструкции if-else:
				
					if (условие) {
    // Код выполняется, если условие истинно
} else {
    // Код выполняется, если условие ложно
}

				
			

Пример:

				
					#include <iostream>

int main() {
    int number = 8;

    if (number > 5) {
        std::cout << "Число больше 5" << std::endl;
    } else {
        std::cout << "Число меньше или равно 5" << std::endl;
    }

    return 0;
}

				
			

В этом примере, так как переменная number больше 5, программа выполнит блок if и выведет сообщение «Число больше 5». Если бы значение number было 5 или меньше, программа выполнила бы блок else.

3. Ветвление с else if

Конструкция if-else может быть расширена с помощью else if, когда нужно проверить несколько условий. В этом случае программа будет выполнять блоки кода последовательно, пока не найдёт условие, которое истинно. Если ни одно из условий не будет истинным, выполнится блок else.

Синтаксис конструкции if-else if-else:
				
					if (условие1) {
    // Код выполняется, если условие1 истинно
} else if (условие2) {
    // Код выполняется, если условие2 истинно
} else {
    // Код выполняется, если ни одно из условий не истинно
}

				
			

Пример:

				
					#include <iostream>

int main() {
    int number = 10;

    if (number > 10) {
        std::cout << "Число больше 10" << std::endl;
    } else if (number == 10) {
        std::cout << "Число равно 10" << std::endl;
    } else {
        std::cout << "Число меньше 10" << std::endl;
    }

    return 0;
}

				
			

Здесь программа проверяет, больше ли number десяти. Если это не так, она проверяет, равно ли число десяти. Если ни одно из этих условий не выполнено, программа выводит сообщение, что число меньше 10.

4. Вложенные конструкции if-else

Конструкции if-else можно вкладывать друг в друга для создания более сложных логических выражений. Однако вложенные конструкции могут усложнить читаемость кода, поэтому следует использовать их с осторожностью.

Пример:
				
					#include <iostream>

int main() {
    int a = 7;
    int b = 5;

    if (a > 0) {
        if (b > 0) {
            std::cout << "Оба числа положительные" << std::endl;
        } else {
            std::cout << "Только число a положительное" << std::endl;
        }
    } else {
        if (b > 0) {
            std::cout << "Только число b положительное" << std::endl;
        } else {
            std::cout << "Оба числа неположительные" << std::endl;
        }
    }

    return 0;
}

				
			

В этом примере сначала проверяется, положительное ли число a. Если да, программа проверяет число b и выводит соответствующее сообщение. Если a не положительное, выполняется другая ветка с проверкой числа b.

5. Использование логических операторов

Иногда можно объединить несколько условий в одном if-выражении, используя логические операторы, такие как && (логическое И) и || (логическое ИЛИ). Это позволяет избежать вложенности и делает код более компактным.

Пример:
				
					#include <iostream>

int main() {
    int age = 20;
    double height = 1.8;

    if (age > 18 && height > 1.7) {
        std::cout << "Возраст больше 18 и рост больше 1.7 метра" << std::endl;
    } else {
        std::cout << "Либо возраст меньше или равен 18, либо рост меньше или равен 1.7 метра" << std::endl;
    }

    return 0;
}

				
			

Здесь проверяются оба условия одновременно: возраст больше 18 и рост больше 1.7 метра. Если оба условия истинны, выполняется блок if.

6. Распространённые ошибки при использовании if-else

Отсутствие скобок при множественных операциях:

				
					if (a > 0 && b < 0 || c > 10)
    // Это условие может интерпретироваться неверно

				
			

Решение: Используйте скобки для ясности:

				
					if ((a > 0 && b < 0) || c > 10)
    // Теперь условие понятно и легко читается

				
			

Ошибки при сравнении с == и =:

				
					if (a = 5) {
    // Присваивание вместо сравнения, результат всегда будет истинным
}

				
			

Решение: Используйте == для сравнения:

				
					if (a == 5) {
    // Правильное сравнение
}

				
			

Сложные вложенные условия:

Глубокая вложенность конструкций if-else делает код сложным для понимания.

Решение: Постарайтесь упростить логику или использовать логические операторы, чтобы уменьшить вложенность.

Заключение

Конструкция if-else — один из самых важных инструментов для принятия решений в программе. Она позволяет выполнять различные действия в зависимости от условий, что делает программу более интерактивной и гибкой. Важно научиться правильно использовать конструкцию if-else, избегать распространённых ошибок и писать читаемый и поддерживаемый код.

7. Тестовое задание

Напишите программу на C++, которая:

  1. Запрашивает у пользователя его возраст.
  2. Проверяет, является ли пользователь ребёнком (до 12 лет), подростком (от 12 до 18 лет) или взрослым (от 18 лет и старше).
  3. Выводит соответствующее сообщение в зависимости от возраста.

Примерный код:

				
					#include <iostream>

int main() {
    int age;

    std::cout << "Введите ваш возраст: ";
    std::cin >> age;

    if (age < 12) {
        std::cout << "Вы ребёнок." << std::endl;
    } else if (age >= 12 && age < 18) {
        std::cout << "Вы подросток." << std::endl;
    } else {
        std::cout << "Вы взрослый." << std::endl;
    }

    return 0;
}

				
			

Этот код поможет вам лучше понять, как использовать конструкцию if-else для обработки различных условий и создания интерактивных программ.

logo