Программирование на Java

       

Цикл while


Основная форма цикла while может быть представлена так:

while(логическое выражение) повторяющееся выражение, или блок;

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

Операторы continue и break могут изменять нормальное исполнение тела цикла. Так, если в теле цикла встретился оператор continue, то операторы, следующие за ним, будут пропущены и выполнение цикла начнется сначала. Если continue используется с меткой и метка принадлежит к данному while, то выполнение его будет аналогичным. Если метка не относится к данному while, его выполнение будет прекращено и управление будет передано на оператор, или блок, к которому относится метка.

Если встретился оператор break, то выполнение цикла будет прекращено.

Если выполнение блока было прекращено по какой-то другой причине (возникла исключительная ситуация), то выполнение всего цикла будет прекращено по той же причине.

Рассмотрим несколько примеров:

public class Test { static int x = 5; public Test() { } public static void main(String[] args) { Test t = new Test(); int x = 0; while(x < 5) { x++; if(x % 2 == 0) continue; System.out.print(" " + x); } } }

На консоль будет выведено

1 3 5

т.е. вывод на печать всех четных чисел будет пропущен.

public class Test { static int x = 5; public Test() { } public static void main(String[] args) { Test t = new Test(); int x = 0; int y = 0; lbl: while(y < 3) { y++; while(x < 5) { x++; if(x % 2 == 0) continue lbl; System.out.println("x=" + x + " y="+y); } } } }

На консоль будет выведено

x=1 y=1 x=3 y=2 x=5 y=3

т.е. при выполнении условия if(x % 2 == 0) continue lbl; цикл по переменной x будет прерван, а цикл по переменной y начнет новую итерацию.

Типичный вариант использования выражения while():

int i = 0; while( i++ < 5) { System.out.println("Counter is " + i); }

Следует помнить, что цикл while() будет выполнен только в том случае, если на момент начала его выполнения логическое выражение будет истинным. Таким образом, при выполнении программы может иметь место ситуация, когда цикл while() не будет выполнен ни разу.

boolean b = false; while(b) { System.out.println("Executed"); }

В данном случае строка System.out.println("Executed"); выполнена не будет.



Содержание раздела