2.8.3 Loops
Процесс повторяемого выполнения блока утверждений известен как цикл loop. Утверждения в блоке могут быть выполнены любое количество раз, от ноля до бесконечного. Если loop продолжается всегда, его называют бесконечным циклом. Java поддерживает такие особенности циклов, которые дают возможность нам развивать короткие программы, содержащие повторяющиеся процессы.
while loop
While loop также известен как итерация. Это наиболее широко используемая структура циклов loop.
Синтаксис использования while loop
while(condition) {
statements;
}
Если while loop содержит только одно утверждение, то изогнутые фигурные скобки писать не надо. Но если есть более одного утверждения, то они должны быть включены в пределы изогнутых фигурных скобок; иначе loop выполняет только первое утверждение, пока условие истинно, при этом другие утверждения просто игнорируется.
Подобно if-else, условие while loop возвращает значение булевской переменной или выражение, которое возвращает булевское значение.
Следующая программа демонстрирует использование while loop.
Пример 11:
class WhileDemo {
public static void main(String args[]) {
int num = 10,count = 0;
while(num <= 15) {
System.out.print( num = + num + t ) ;
count++;
num++;
}
System.out.println( while loop executed + count + times );
}
}
Рисунок 2.8 показывает вывод вышеупомянутой программы.
Рисунок 2.8: Вывод WhileDemo
do-while
Конструкция
do-while loop работает подобно while-loop за исключением того, что в данной конструкции цикл выполняется, по крайней мере, один раз, даже если условие не является истинной.
Синтаксис do-while loop:
do{ statements;
}while(condition);
Здесь, do loop сначала выполняет операторы тела цикла, а затем проверяет условие после каждого выполнения. Цикл выполняется до тех пор, пока значением условия является не нуль или True (истина).
Обратите внимание: В конструкции do-while loop, точка с запятой требуется после while(condition).
for loop
for - это компактная форма while loop которая объединяет инициализацию переменной, проверку условия и увеличения или уменьшение значения переменной для итерации в отдельном утверждении.
Синтаксис for loop
for(var init ; condition ; incre or decre value of variable)
Часть 1 Часть 2 Часть 3
Обратите внимание: В конструкции for loop, объявление и инициализация переменной могут быть выполнены одновременно.
Последовательность шагов, которые нужно соблюдать при выполнении конструкции for loop следующие:
1. Инициализация переменных (Часть 1) и проверка условия перед выполнением цикла (Часть 2). Если условие истинно, то выполняется тело цикла for loop.
2. Когда последнее утверждение for loop выполнено, тогда выполняется Часть 3, где значение переменной увеличивается или уменьшается. После этого условие проверяется снова. Если значением условия (condition) является истина (True), то тело цикла for loop выполняется ещё раз. Инициализация переменной делается только один раз, и цикл выполняется, пока значением условия является истина.
Следующая программа демонстрирует использование for loop.
Пример 12:
class ForDemo {
public static void main(String args []){
for(int i = 1; i <= 5; i + + )
System.out.printIn( value of i is +i) ;
}
}
Вывод вышеупомянутой программы как показано на рисунке 2.9.
Рисунок 2.9: Вывод ForDemo
В вышеупомянутом примере, объявлена переменная i и присвоено значение 1. Это значение проверяется условием (i <= 5). Так как условие истина, то i будет напечатано. При увеличении значения переменной I, снова проверяется условие I <= 5 и выполняется соответствующее действие. Так продолжается до тех пор, пока I меньше или равно 5. Когда I = 6, то цикл заканчивается, т.к. условие I <= 5 ложь. Изогнутые фигурные скобки для цикла можно опустить, если есть одна инструкция, которая будет выполняться в цикле.
В цикле мы можем сделать следующее:-
Инициализировать более одной переменной
Задать более одного условия
Приращение или уменьшение более чем одной переменной
Следующий фрагмент кода показывает применение в цикле более одной переменной.
for(int i=l,j=5;i < 5 && j >= l;i++,j--)
System.out.println( i is + i + j is +j);
В цикле for мы можем опустить любую часть, только помещая точку с запятой (;)
Например,
int k =10;
for(; к <= 15; к++) {
statementl;
statement2;
statementN;
}
Вложенность циклов for
for(int a = 1; а <= 2; а++){
for(int b = 1; b <= 3; b++){
statementl;
statement2;
statementN;
}
}
В вышеупомянутом примере, после инициализации переменной внешнего цикла, проверяется условие данное во внешнем цикле, если условие истинно, то выполняется внутренний цикл for. Внутренний цикл for выполняется, пока условие истинно, и как только условие оценивает как ложь, начинает выполняться снова внешний цикл for. Внешний цикл выполняется, пока условие истинно. Здесь, каждый раз управление передаётся от внешнего во внутренний цикл.
Обратите внимание: Когда мы объявляем переменную в цикле for, область действия данной переменной только внутри цикла. В результате, мы не можем использовать эту переменную вне цикла.