Java/Операторы цикла for, while, do ... while

Материал из Викиучебника — открытых книг для открытого мира


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

Оператор while[править]

Конструкция оператора while:

while (Условие выполнения) {
    Тело цикла;
}

Где выражение в скобках определяет условие: пока (while) оно выполняется, будет выполняться выражение в фигурных скобках.

class WhileLoop {
  public static void main (String[] args ) {
    int a = 0;
    while(a < 10) {
      System.out.print(a);
      a++;
    }
  }
}

Данный цикл выведет:

0123456789

Стоит обратить внимание, что число 10 выведено не будет, так как while это оператор предусловия.

Также обратите внимание на метод print использованный в этом коде, в отличие от println метод print не переводит курсор на новую строку.

Оператор do...while[править]

Конструкция оператора do while:

do {
    Тело цикла;
} while (условие выполения);

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

public class DoWhileLoop {
  public static void main (String[] args) {
    int i = 0;
    do {
      System.out.print(i);
      i++;
    } while (i < 10);
    System.out.println(); //Это можно использовать для простого перевода строки
    do {
        System.out.print("Do...while is cool;");
    } while (2 == 3); //Можно было написать и просто false
  }
}

Данный цикл выведет:

0123456789
Do...while is cool;

Как видно из кода, несмотря на то, что 2 != 3, строчка всё равно была выведена на экран.

Оператор for[править]

Конструкция оператора for:

for (Начальное значение переменной; Логическое выражение с переменной (условие выполнения цикла); Действие над переменной, после выполнения тела цикла) { 
    Операторы, которые будут выполнять цикл при условии, что логическое выражение - true;
}

Цикл for использует переменную i и проверяя её значение выполняет операторы, после чего совершает над ней действие. Например:

class ForLoop {
  public static void main (String[] args ) {
    for (int i = 0; i < 10; i++) {
      System.out.print("Ku-Ku ");
    }
  }
}

Цикл работает с переменной i. После инициализации этой переменной проверяется условие логического выражения (i < 10), если оно равно true, действие в теле цикла выполняется, после чего переменная увеличивается операцией инкремента i++. И так повторяется до тех пор пока условие логического выражения равняется true.

Данный цикл выведет:

Ku-Ku Ku-Ku Ku-Ku Ku-Ku Ku-Ku Ku-Ku Ku-Ku Ku-Ku Ku-Ku Ku-Ku