🧠 Урок 5 — Расширяем возможности условий. Оператор else if в C++
Урок 5 — Расширяем возможности условий. Оператор else if в C++
🔀 Зачем нужен else if?
Иногда условий больше двух.
🧩 Оператор else if позволяет программе проверять несколько вариантов подряд.
✅ Как только одно условие выполнено — программа останавливается и выполняет соответствующий блок.
⛔ Остальные условия игнорируются.
Это помогает делать программы более гибкими и умными.
🧪 Пример: сравнение числа
🔍 Пояснение:
  • Сначала проверяется number > 20
  • Если да → выводится “The number is greater than 20”
  • Если нет, проверяется number > 10
  • И так далее, пока не выполнится одно из условий
  • Если ничего не сработало — выполняется else
int number = 15;

if (number > 20) {
    cout << "The number is greater than 20" << endl;
} else if (number > 10) {
    cout << "The number is greater than 10" << endl;
} else if (number > 5) {
    cout << "The number is greater than 5" << endl;
} else {
    cout << "The number is 5 or less" << endl;
}

🧪 Тестирование: 📊 сравнение чисел (number > …)

🔢 Проверка числа 25
✅ Условие number > 20 — выполнено
💬 Вывод: The number is greater than 20
⛔ Остальные условия не проверяются
int number = 25;

if (number > 20) {
    cout << "The number is greater than 20";
}
🔢 Проверка числа 15
⛔ Первое условие — ложь
✅ Второе условие number > 10 — истина
💬 Вывод: The number is greater than 10
int number = 15;

if (number > 20) {
    ...
} else if (number > 10) {
    cout << "The number is greater than 10";
}
🔢 Проверка числа 7
⛔ Первые два условия — ложь
✅ Третье условие — истина
💬 Вывод: The number is greater than 5
int number = 7;

...
else if (number > 5) {
    cout << "The number is greater than 5";
}
🔢 Проверка числа 5
⛔ Ни одно из условий не выполнено
✅ Сработал else
💬 Вывод: The number is 5 or less
int number = 5;

...

else {
    cout << "The number is 5 or less";
}

💡 Разбор условий по шагам:

Проверка первого условия
Проверяем: больше ли число 20?
if (number > 20) { ... }
Второе условие
Проверяется, если первое условие не сработало. Важно: else if — это "ещё одно условие".
else if (number > 10) { ... }
Третье условие
Проверяется, если и первое, и второе — ложны.
else if (number > 5) { ... }
else — по умолчанию
Если всё выше ложное — выполняется это. Здесь уже нет условий.
else { ... }

🎯 Задача: оценка по баллам

✍ Объяснение:
  • 90 и больше — "Excellent"
  • 70–89 — "Good"
  • 50–69 — "Satisfactory"
  • Меньше 50 — "Needs Improvement"
Порядок условий важен: сначала проверяем от большего к меньшему.
int score;
cin >> score;

if (score >= 90) {
    cout << "Excellent";
} else if (score >= 70) {
    cout << "Good";
} else if (score >= 50) {
    cout << "Satisfactory";
} else {
    cout << "Needs Improvement";
}

🧾 Тестирование программы: 🎯 оценка по баллам

🔢 Проверка балла 95
✅ Условие score >= 90 — выполнено
💬 Вывод: Excellent
⛔ Остальные условия не проверяются
int score = 95;

if (score >= 90) {
    cout << "Excellent";
}
🔢 Проверка балла 75
⛔ Первое условие score >= 90 — не выполнено
✅ Второе условие score >= 70 — выполнено
💬 Вывод: Good
⛔ Следующие блоки пропускаются
int score = 75;

if (score >= 90) {
    ...
} else if (score >= 70) {
    cout << "Good";
}
🔢 Проверка балла 60
⛔ Первое и второе условия — ложны
✅ Условие score >= 50 — истинно
💬 Вывод: Satisfactory
int score = 60;

if (...) {
    ...
} else if (...) {
    ...
} else if (score >= 50) {
    cout << "Satisfactory";
}
🔢 Проверка балла 40
⛔ Ни одно из условий не сработало
✅ Сработал блок else
💬 Вывод: Needs Improvement
int score = 40;

...

else {
    cout << "Needs Improvement";
}

✍ Пошаговое объяснение:

Объявление переменной и ввод значения:
Сначала создаём переменную score, в которую пользователь введёт свой балл.
Оператор cin считывает число с клавиатуры.
int score;
cin >> score;
Первое условие:
Если введённый балл 90 или больше — программа выводит "Excellent" и завершает проверку.
Остальные блоки else if и else не выполняются.
if (score >= 90) {
    cout << "Excellent";
}
Второе условие:
Срабатывает, если первое условие не выполнилось, и балл — от 70 до 89.
Выводится сообщение "Good".
else if (score >= 70) {
    cout << "Good";
}
Третье условие:
Срабатывает, если балл от 50 до 69.
Выводится сообщение "Satisfactory".
else if (score >= 50) {
    cout << "Satisfactory";
}
Все остальные случаи:
Если все предыдущие условия ложны (балл меньше 50),
программа выводит "Needs Improvement".
else {
    cout << "Needs Improvement";
}
Порядок условий здесь очень важен — от большего к меньшему.
Это гарантирует, что программа выберет первое подходящее условие и не дойдёт до следующих.

🤖 Практика: определяем знак числа

📌 Описание:
Программа запрашивает число у пользователя 🔢
и определяет:
➕ положительное
➖ отрицательное
⭕ или ноль.
Результат выводится на экран 📤.
int number;
cin >> number;

if (number > 0) {
    cout << "The number is positive";
} else if (number < 0) {
    cout << "The number is negative";
} else {
    cout << "The number is zero";
}

🧪 Тестирование: 📈 проверка знака числа

🔢 Ввод числа 12
✅ Число больше нуля
💬 Вывод: The number is positive
int number = 12;

if (number > 0) {
    cout << "The number is positive";
}
🔢 Ввод числа -5
✅ Число меньше нуля
💬 Вывод: The number is negative
int number = -5;

...

else if (number < 0) {
    cout << "The number is negative";
}
🔢 Ввод числа 0
✅ Ни одно условие не выполнено
💬 Вывод: The number is zero
int number = 0;

...

else {
    cout << "The number is zero";
}

📝 Пошаговое объяснение

🔹 Объявление переменной
Создаётся переменная number, в которую пользователь введёт значение.
int number;
🔹 Ввод с клавиатуры
Пользователь вводит число, и оно сохраняется в number.
cin >> number;
🔹 Первое условие
Проверяется, является ли число положительным. Если да — выводится сообщение.
if (number > 0)
🔹 Второе условие
Если первое условие не сработало — проверяется, не является ли число отрицательным.
else if (number < 0)
🔹 Все остальные случаи
Если число не больше и не меньше нуля — значит, это ноль.
Выводится: The number is zero.
else

📌 Домашнее задание


Напишите программу, которая проверяет, является ли введённый год високосным.
Правила:

Год делится на 4 → возможно високосный

Но если он делится на 100, он НЕ високосный...

…если только он не делится на 400 — тогда точно високосный!


Проверьте свою программу на годах: 2024, 1900, 2000

🌐 Поддержка и сообщество


Не забудьте подписаться на наши соцсети, чтобы получать обновления и полезные советы!
Разбор домашнего задания

Урок 5 — Расширяем возможности условий. Оператор else if в C++
Разбор домашнего задания
Урок 5 — Расширяем возможности условий. Оператор else if в C++

📌 Задание:


Написать программу, которая определяет, является ли введённый пользователем год високосным.


Программа должна работать по следующим правилам:


  • если год делится на 400 — он високосный;
  • если год делится на 100, но не делится на 400 — не високосный;
  • если год делится на 4, но не делится на 100 — високосный;
  • в остальных случаях — не високосный.
👩‍💻 Пример кода:
#include <iostream>
using namespace std;
int main() {
    int year;
    
    cout << "Enter a year: ";
    cin >> year;
    
    if (year % 400 == 0) {
        cout << "The year is a leap year" << endl;
    } else if (year % 100 == 0) {
        cout << "The year is not a leap year" << endl;
    } else if (year % 4 == 0) {
        cout << "The year is a leap year" << endl;
    } else {
        cout << "The year is not a leap year" << endl;
    }    
    return 0;
}

🧪 Тестирование программы

✅ Ввод: 2000

Ожидаем: високосный год

Результат: The year is a leap year
Объяснение: 2000 делится на 400, значит, это високосный год.
int year = 2000;
if (year % 400 == 0) {
    cout << "The year is a leap year";
}
✅ Ввод: 1900

Ожидаем: не високосный

Результат: The year is not a leap year
Объяснение: 1900 делится на 100, но не делится на 400. Поэтому год не високосный.
int year = 1900;
if (year % 400 == 0) {
    cout << "The year is a leap year";
} else if (year % 100 == 0) {
    cout << "The year is not a leap year";
}
✅ Ввод: 1996

Ожидаем: високосный

Результат: The year is a leap year
Объяснение: 1996 делится на 4, но не делится на 100. Это високосный год.
int year = 1996;
if (year % 400 == 0) {
    cout << "The year is a leap year";
} else if (year % 100 == 0) {
    cout << "The year is not a leap year";
} else if (year % 4 == 0) {
    cout << "The year is a leap year";
}
✅ Ввод: 2023

Ожидаем: не високосный

Результат: The year is not a leap year
Объяснение: 2023 не делится ни на 4, ни на 100, ни на 400, поэтому год не високосный.
int year = 2023;
if (year % 400 == 0) {
    cout << "The year is a leap year";
} else if (year % 100 == 0) {
    cout << "The year is not a leap year";
} else if (year % 4 == 0) {
    cout << "The year is a leap year";
} else {
    cout << "The year is not a leap year";
}

🔍 Объяснение кода:

Ввод года:

Программа запрашивает у пользователя ввод года и сохраняет его в переменной year.
cout << "Enter a year: ";
cin >> year;
Проверка на делимость на 400:
Если год делится на 400, он точно високосный.
if (year % 400 == 0)
Проверка на делимость на 100:
Если год делится на 100, но не на 400 — не високосный.
else if (year % 100 == 0)
Проверка на делимость на 4:
Если год делится на 4, но не делится на 100 — он високосный.
else if (year % 4 == 0)
Все остальные случаи:
Если ни одно из условий не выполняется — год не високосный.
else
Завершение программы
Стандартное завершение программы.
return 0;
}

✅ Итоги:


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

🔗 Подписывайтесь:


Следите за нашими обновлениями и новыми уроками в соцсетях!
До встречи на следующем занятии!
Made on
Tilda