Для того, чтобы после выполнения нужной ветви оператора switch другие операторы не выполнялись, каждая ветвь должна заканчиваться оператором break:
$i = 5;
switch ($i)
switch ($i)
{
case 0: echo “<BR>Это цифра ноль”;
case 1: case 2: echo “<BR>Это цифра один или два”;
default: echo “<BR>Это неизвестная цифра”;
}
В этом случае после ввода цифры 0 на экран будет выведено только одно сообщение:
Если в каждой ветви switch стоит не по одному, а по нескольку операторов, то необходимо брать их в фигурные скобки:
{
case метка-1:
{
}
case метка-2:
{
}
default:
{
}
}
Для улучшения читаемости программы необходимо использовать сдвиг операторов.
Можно использовать вложенные операторы switch, при этом в разных операторах могут быть одинаковые метки вариантов:
switch ($n)
{
case 0: оператор;
case 1: switch ($m)
{
case 0: оператор;
case 1: оператор;
default: оператор;
}
case 3: оператор;
default: оператор;
}
Пример:по заданному номеру месяца года определить количество дней в нем. В этом переключателе всего три ветви:
<?php
$month = 5;
switch ($month)
{
case 1: case 3: case 5:
case 7: case 8: case 10:
case 12: echo “<BR>31 день”;
case 4: case 6: case 9:
case 11: echo “<BR>30 дней”;
case 2: echo “<BR>28 дней”;
default: echo “<BR>Такого месяца нет<BR>”;
}
?>
Часто встречающиеся ошибки программирования:
1. Точка с запятой после скобок селектора:
switch ($n);
{
case 0: оператор;
. . . . . . . . . .
2. Отсутствие фигурных скобок после слова switch :
switch ($n)
case 0: оператор;
. . . . . . . . . .
3. Перечисление меток вариантов без слов case:
switch ($n)
{
case 0, 1, 2: $n++;
4. Перечисление меток вариантов через запятые:
switch ($n)
{
case 0, case 1, case 2: $n++;
5. Отсутствие оператора break после ветвей переключателя:
switch ($n)
{
case 0: case 1: case 2: $n++;
case 3: $n--;
Одним из самых ценных свойств компьютеров является их способность многократно повторять последовательность одинаковых или похожих действий - циклов.
Являясь наиболее мощными структурами алгоритмических языков, циклы подразделяются на:
1. бесконечные циклы,
2. циклы с предусловием (циклы типа ПОКА),
3. циклы с постусловием (циклы типа ДО),
4. циклы с параметром (циклы типа ДЛЯ).
Бесконечный цикл может быть представлен следующей схемой:
Как правило, появление в программе бесконечных циклов вызвано логическими ошибками, допущенными программистом при разработке алгоритма и кодировании (написании операторов программы) с использованием оператора безусловного перехода goto. Поэтому в современных алгоритмических языках этот оператор практически не используется, а заменяется циклами. Бесконечные циклы не выявляются транслятором при синтаксическом контроле и проявляются только после запуска программы на выполнение следующим образом:
1. длительное время (десятки секунд) программа не выводит на устройство вывода никакой информации – программа зависает,
2. на устройство вывода постоянно выводится одна и та же информация.
Таким образом, бесконечные циклы – это логические ошибки программиста. С ними сталкивается любой программист, и поэтому необходимо овладеть методами их поиска.