Урок 4. Задачи на конструкции if-else, switch-case в PHP
Практика
Примеры решения задач
Задача
Если переменная $a=10, то выведите 'Верно', иначе выведите 'Неверно'.
Решение:
<? $a=10; if($a==10){ echo'Верно'; }else{ echo'Неверно'; } ?>
Задача
В переменной $min лежит число от 0 до 59. Определите в какую четверть часа попадает это число (в 1-ю, 2-ю, 3-ю или 4-ю).
Решение:
<? $min=10; if($min>=0 and$min<=14){ echo'В 1-ю четверть.'; } if($min<=15 and$min>=30){ echo'Во 2-ю четверть.'; } if($min<=31 and$min>=45){ echo'В 3-ю четверть.'; } if($min>=46 and$min<=59){ echo'В 4-ю четверть.'; } ?>
Задача
Переменная $l может принимать 2 значения: 'ru' и 'en'. Если она имеет значение 'ru', то в переменную $a запишем массив дней недели на русском языке, а если имеет значение 'en' - то на английском. Решите задачу через 2 if, через switch-case и через многомерный массив без ифов и switch.
Решение:
Решение через 2 if:
<? $l='ru'; if($l=='ru'){ $a=['пн','вт','ср','чт','пт','сб','вс']; } if($l=='en'){ $a=['mn','ts','wd','th','fr','st','sn']; } var_dump($a) ?>
Решение через switch-case:
<? $l='ru'; switch($l){ case 'ru': $a=['пн','вт','ср','чт','пт','сб','вс']; break; case 'en': $a=['mn','ts','wd','th','fr','st','sn']; break; } var_dump($a) ?>
Решение через многомерный массив:
<? $l='ru'; $a=[ 'ru'=>['пн','вт','ср','чт','пт','сб','вс'], 'en'=>['mn','ts','wd','th','fr','st','sn'], ]; var_dump($a[$l]) ?>
Задачи для решения
Работа с if-else
Если переменная $a=0, то выведите 'Верно', иначе выведите 'Неверно'. Проверьте работу скрипта при $a=1, 0, -3.
Если переменная $a>0, то выведите 'Верно', иначе выведите 'Неверно'. Проверьте работу скрипта при $a=1, 0, -3.
Если переменная $a<0, то выведите 'Верно', иначе выведите 'Неверно'. Проверьте работу скрипта при $a=1, 0, -3.
Если переменная $a> или =0, то выведите 'Верно', иначе выведите 'Неверно'. Проверьте работу скрипта при $a=1, 0, -3.
Если переменная $a< или =0, то выведите 'Верно', иначе выведите 'Неверно'. Проверьте работу скрипта при $a=1, 0, -3.
Если переменная $a не =0, то выведите 'Верно', иначе выведите 'Неверно'. Проверьте работу скрипта при $a=1, 0, -3.
Если переменная $a='test', то выведите 'Верно', иначе выведите 'Неверно'. Проверьте работу скрипта при $a='test', 'тест', 3.
Если переменная $a='1' и по значению и по типу, то выведите 'Верно', иначе выведите 'Неверно'. Проверьте работу скрипта при $a='1', 1, 3.
Работа с empty и isset
Если переменная $a пустая, то выведите 'Верно', иначе выведите 'Неверно'. Проверьте работу скрипта при $a=1, 3, -3, 0, null, true, '', '0'.
Если переменная $a не пустая, то выведите 'Верно', иначе выведите 'Неверно'.
Если переменная $a существует, то выведите 'Верно', иначе выведите 'Неверно'. Проверьте работу скрипта при $a=3 и null.
Если переменная $a не существует, то выведите 'Верно', иначе выведите 'Неверно'.
Работа с логическими переменными
Если переменная $var=true, то выведите 'Верно', иначе выведите 'Неверно'. Проверьте работу скрипта при $var=true, false. Напишите 2 варианта скрипта - с короткой записью и с длинной.
Если переменная $var не =true, то выведите 'Верно', иначе выведите 'Неверно'. Проверьте работу скрипта при $var=true, false. Напишите 2 варианта скрипта - с короткой записью и с длинной.
Работа с OR и AND
Если переменная $a>0 и <5, то выведите 'Верно', иначе выведите 'Неверно'. Проверьте работу скрипта при $a=5, 0, -3, 2.
Если переменная $a=0 или =2, то прибавьте к ней 7, иначе поделите ее на 10. Выведите новое значение переменной на экран. Проверьте работу скрипта при $a=5, 0, -3, 2.
Если переменная $a= или <1, а переменная $b> или =3, то выведите сумму этих переменных, иначе выведите их разность (результат вычитания). Проверьте работу скрипта при $a и $b=1 и 3, 0 и 6, 3 и 5.
Если переменная $a>2 и <11, или переменная $b> или =6 и <14, то выведите 'Верно', в противном случае выведите 'Неверно'.
На switch-case
Переменная $n может принимать 1 из значений: 1, 2, 3 или 4. Если она имеет значение '1', то в переменную $r запишем 'зима', если имеет значение '2' - 'лето' и так далее. Решите задачу через switch-case.
Задачи
В переменной $d лежит какое-то число из интервала от 1 до 31. Определите в какую декаду месяца попадает это число (в 1-ю, 2-ю или 3-ю).
В переменной $month лежит какое-то число из интервала от 1 до 12. Определите в какую пору года попадает этот месяц (зима, лето, весна, осень).
В переменной $y хранится год. Определите, является ли он високосным (в таком году есть 29 февраля). Год будет високосным в 2 случаях: либо он делится на 4, но при этом не делится на 100, либо делится на 400. Так, годы 1700, 1800 и 1900 не являются високосными, т.к. они делятся на 100 и не делятся на 400. Годы 1600 и 2000 - високосные, т.к. они делятся на 400.
Дана строка с символами, например, 'abcde'. Проверьте, что 1-м символом этой строки является буква 'a'. Если это так - выведите 'да', в противном случае выведите 'нет'.
Дана строка с цифрами, например, '12345'. Проверьте, что 1-м символом этой строки является цифра 1, 2 или 3. Если это так - выведите 'да', в противном случае выведите 'нет'.
Дана строка из 3-х цифр. Найдите сумму этих цифр. Т.е. сложите как числа 1-й символ строки, 2-й и 3-й.
Дана строка из 6 цифр. Проверьте, что сумма 1-х 3 цифр равняется сумме 2-х 3 цифр. Если это так - выведите 'да', в противном случае выведите 'нет'.