0 знаков
7. Условная конструкция if-elseif-else в PHP
КраткоОсновы условных конструкций в PHP
- Условные конструкции используются для управления ходом программы в зависимости от условий.
- Условные операторы позволяют выразить "да" и "нет" через
true
иfalse
.- Блок
if
выполняется при истинном условии, блокelse
- при ложном.Множественное ветвление
- Для обработки нескольких вариантов используется множественное ветвление.
- Пример: проверка возраста клиента для покупки билетов на мероприятие.
Инвертирование высказываний
- Инвертирование условия позволяет заменить исходное логическое выражение на противоположное.
- Оператор логического отрицания (
!
) используется для инвертирования условий.- Примеры инвертирования сложных условий с использованием операторов
&&
,||
и==
.Улучшение читаемости кода
- Инвертирование условий упрощает код и повышает его читаемость.
- Примеры инвертирования условий для улучшения читаемости кода.
Задачи для практики
- Примеры задач на проверку четности числа, совершеннолетия, температуры, скидки на покупку, времени суток, оценки, дня недели, возраста и категории билета, а также проверку на отсутствие данных и число не больше определенного значения.
Следующий урок
- В следующем уроке будет рассмотрен альтернативный синтаксис условных конструкций.
В предыдущем уроке мы с вами изучили работу со строками. Давайте научимся управлять ходом нашей программы в разных условиях.
Как же мне нравятся условные конструкции, ни одна программа без них не обходится. Условные конструкции очень легки в понимании, а их использование — настоящее искусство.
Представьте, что вы идёте по улице, и все вокруг оборачиваются на вас. Вы проходите мимо магазина с выпечкой и чувствуете этот удивительный запах. Вам приходится выбирать: купить или пройти мимо? Этот выбор между «да» и «нет» можно обозначить как true
и false
, соответственно. Чтобы наше условие работало, нам нужно его реализовать:
<?php
$yes = true; // true также можно записать как и 1
if ($yes) { // if вход в условие, если пременная $yes равняется true
echo "Пойти";
} else { // else если условие не выполнилось, отработает этот блок кода
echo "Не пойти";
}
?>
После выполнения этого кода на экране выведется текст «Пойти», потому что переменная $yes
равна true
. В блоке if
выполнится код при истинном результате условия (true
), если будет false
, то выполнится код в блоке else
. Напишите сами сейчас вот таких простых пару штук примеров и вы всё поймёте.
Множественное ветвление
Что делать, если у нас есть два или три выбора? В этом случае поможет множественное ветвление. Представим, что к нам обратился клиент с просьбой доработать сайт для покупки билетов на мероприятие. Условие: человек должен быть не моложе 18 и не старше 50 лет. Клиент вводит свой возраст, а мы должны вывести, подходит ли он под это условие или нет.
Напишем код:
<?php
$age = 25;
if ($age < 18) { // Всегда начинается с этого момента
echo "Вы еще слишком молоды. Приходите когда подрастете.";
} elseif($age >= 18 && $age < 30) { // elseif позволяет делать
// множественное ветвление
echo "Вы в расцвете сил! Будем гулять всю ночь?"; // Распечатает это сообщение
} elseif ($age >= 30 && $age < 50) {
echo "Вы достигли зрелости. Ночь будет короткой :(";
} elseif ($age >= 50 && $age < 120) {
echo "Вы обладаете большим жизненным опытом. Но купить проход в клуб не выйдет.";
} else {
echo "Ой... вы ошиблись с возрастом или вам надо в книгу рекордов гинесса :)";
}
?>
В коде интерпретатор сначала зайдет в первый if
. Если условие окажется ложным, он перейдет по цепочке вниз до блока else
. Что касается оператора &&
, о нем я писал в уроке про операторы в PHP. Он означает логическую операцию "И". Например, если 25
больше 18
"И" меньше 29
, то оператор <
не включает число 30
.
Инвертирование высказываний в конструкции if-else
`Инвертирование условия в PHP – это процесс, при котором исходное логическое выражение заменяется на противоположное. Для достижения этого используется оператор логического отрицания (!
). Рассмотрим пример: если у нас есть условие if ($a > $b)
, его инвертированная версия будет выглядеть так: if (!($a > $b))
, что эквивалентно if ($a <= $b)
.
При инвертировании сложных условий следует учитывать все логические операторы, такие как &&
, ||
, и ==
. Например, условие if ($a == $b && $c > $d)
после инверсии станет if (!($a == $b && $c > $d))
, что эквивалентно if ($a != $b || $c <= $d)
.
Инвертирование условий полезно для упрощения кода, повышения его читаемости и избегания вложенности.
Исходное условие:
<?php
$userAge = 18;
$hasID = true;
if ($userAge >= 18 && $hasID) {
echo "Access granted";
// Здесь мы пишем остальной код
} else {
echo "Access denied";
}
?>
Инвертированное условие:
<?php
$userAge = 18;
$hasID = true;
if (!($userAge >= 18 && $hasID)) {
echo "Access denied";
}
// Здесь остальной код
?>
В этих примерах мы с вами разобрали одно условие, где у нас есть два значения: возраст $userAge
и удостоверение личности $hasId
. В первом случае, если условие выполняется, мы сразу в этом блоке пишем остальной код программы, что может быть затруднительно. Во втором примере применено инвертирование: если условие не выполняется, выводится Access denied
, а остальной код пишется ниже, что улучшает читаемость кода. Конечно, условие можно было написать и по-другому, но этим вы уже займётесь в задачах. Главное — потренируйтесь (по началу я тоже путался и задавался вопросом, зачем они нужны, но в реальном программировании они всегда выручают, поверьте мне).
Вы думаете это всё? В следующем уроке изучим альтернативный синтаксис условных конструкций. Решайте задачи и переходите к следующему уроку.
Задания
1. Проверка четности числа: Напишите программу, которая принимает число и выводит "Четное", если число четное, и "Нечетное" — если нечетное. (привет математика).
2. Проверка совершеннолетия: Напишите скрипт, который принимает возраст пользователя и выводит "Вы совершеннолетний", если возраст больше или равен 18, и "Вы несовершеннолетний" — если меньше.
3. Проверка температуры: Программа должна принимать значение температуры и выводить "Жарко", если температура больше 30 градусов, и "Прохладно" — если 30 и ниже.
4. Скидка на покупку: Напишите код, который проверяет сумму покупки. Если сумма больше 1000, применяйте скидку 10% и выводите новую цену. Если меньше или равна 1000, выводите полную цену без скидки.
5. Напишите программу, которая принимает значение текущего часа (0–23) и выводит:
- "Доброе утро" — если время с 5 до 11 часов.
- "Добрый день" — если с 12 до 17.
- "Добрый вечер" — если с 18 до 22.
- "Доброй ночи" — если с 23 до 4.
6. Напишите код, который принимает оценку (0-100) и выводит:
- "Отлично" — если оценка 90 и выше.
- "Хорошо" — если от 70 до 89.
- "Удовлетворительно" — если от 50 до 69.
- "Неудовлетворительно" — если ниже 50.
7. Создайте программу, которая принимает день недели (1-7) и выводит режим работы:
- "Магазин закрыт" — если это понедельник (1).
- "Магазин работает с 9:00 до 18:00" — если это вторник-пятница (2-5).
- "Магазин работает с 10:00 до 16:00" — если это суббота (6).
- "Магазин работает с 11:00 до 15:00" — если это воскресенье (7).
8. Программа принимает возраст и выводит категорию билета:
- "Детский" — если возраст до 12 лет.
- "Подростковый" — если от 13 до 17 лет.
- "Взрослый" — если от 18 до 64 лет.
- "Пенсионный" — если 65 лет и старше.
9. Проверка на отсутствие данных: Напишите код, который проверяет переменную на отсутствие значения (пустая строка или null
) и выводит "Пожалуйста, введите данные", если переменная пуста. В противном случае выводит "Данные приняты". (на пустую строку можно проверить вот так $var === ""
)
10. Проверка на число не больше определенного значения: Создайте переменную $number
. Если число не больше 50, выводит "Число меньше или равно 50". Если число больше 50, выводит "Число больше 50". Используйте инвертирование условий для реализации этой задачи.
Похожие уроки Codebra
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ