вторник, 2 октября 2007 г.

Циклы в Руби

На первый взгяд, Руби предоставляет не большой набор встроенных конструкций для создания циклов. Здесь нет привычного for(i=0;i < N;i++), только while и until.

while выполняет до тех пор, пока выражение равно true. until выполняется пока выражение не станет равно true.

Цикл можно описывать в одной строке, переместив проверку условия в конец строки:

Для управлением цикла из нутри самого цикла существуют такие конструкции как break (прервать выполнение цикла), redo (выполнить итерацию сначала, без вычисления условия или перехода к следующему итератору), next (прервать текущую итерацию и перейти к следующей) и retry (цикл выполняет заново с самой первой итерации).

Но это далеко не все, что предоставляет Руби для сознания циклов. Циклы можно создавать используя итераторы и методы классов. Например:

Кроме того, в Руби есть встроенный итератор loop:

Есть еще конструкция for .. in ..:

Комментариев нет: