П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 180911 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 79511 раз(а).

Учебник HTML.
Просмотров 75992 раз(а).

Руководство по PHP5.
Просмотров 47034 раз(а).

Хостинг через призму DNS.
Просмотров 54511 раз(а).

Подборка текстов стандартных документов.
Просмотров 46800 раз(а).

Учебник PHP - Самоучитель
Просмотров 53051 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 53674 раз(а).

Внешние атаки...
Просмотров 43364 раз(а).

Учебник PHP.
Просмотров 38887 раз(а).

SSI в примерах.
Просмотров 28771 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





5.5. Оператор цикла с истинным условием ("while")

Структура "while", также обеспечивающая выполнение расчетов, предпочтительнее тогда, когда неизвестен заранее точный список значений параметров или этот список должен быть получен в результате вычислений в цикле.

Оператор цикла "while" имеет структуру:

   while условие
	do
	    список команд
	done

где "while" - служебное слово определяющее тип цикла с истинным условием. Список команд в теле цикла (между "do" и "done") повторяется до тех пор, пока сохраняется истинность условия (т.е. код завершения последней команды в теле цикла равен "0") или цикл не будет прерван изнутри специальными командами ("break", "continue" или "exit"). При первом входе в цикл условие должно выполняться.

    ###
    # print-50: Структура "while"
    #           Расчет позволяет напечатать 50
    #           экземпляров файла "file-22"
    n=0
    while [ $n -lt 50 ]    # пока n < 50
    do
	n=`expr $n + 1`
	cat file-22 > /dev/lp
    done

Обратим внимание на то, что переменной "n" вначале присваивается значение 0, а не пустая строка, так как команда "expr" работает с shell-переменными как с целыми числами, а не как со строками.

    n=`expr $n + 1`
т.е. при каждом выполнении значение "n" увеличивается на 1.

Как и вообще в жизни, можно реализовать то же самое и сложнее. Расчет "рr-br" приведен для иллюстрации бесконечного цикла и использования команды "break", которая обеспечивает прекращение цикла.

    ###
    # рr-br: Структура "while" c "break"
    #        Расчет позволяет напечатать 50
    #        экземпляров файла "file-22"
    n=0
    while true
    do
	if [ $n -lt 50 ]           # если n < 50
	   then n=`expr $n + 1`
	   else break
	fi
	     cat file-22 > /dev/lp
    done

Команда "break [n]" позволяет выходить из цикла. Если "n" отсутствует, то это эквивалентно "break 1". "n" указывает число вложенных циклов, из которых надо выйти, например, "break 3" - выход из трех вложенных циклов.

В отличие от команды "break" команда "continue [n]" лишь прекращает выполнение текущего цикла и возвращает на НАЧАЛО цикла. Она также может быть с параметром. Например, "continue 2" означает выход на начало второго (если считать из глубины) вложенного цикла.

Команда "exit [n]" позволяет выйти вообще из процедуры с кодом возврата "0" или "n" (если параметр "n" указан). Эта команда может использоваться не только в циклах. Даже в линейной последовательности команд она может быть полезна при отладке, чтобы прекратит выполнение (текущего) расчета в заданной точке.

[Назад] [Содержание] [Вперед]



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту: