В Java есть два типа циклов: for
и while
.
Цикл for состоит из трех частей:
for (int i = 0; i < 3; i++) {}
Первый раздел запускается один раз, когда мы входим в цикл.
Вторая секция - это привратник, если он возвращается true
, мы запускаем операторы в цикле, если он возвращается false
, мы выходим из цикла. Он запускается сразу после первого раздела в первый раз, затем каждый раз, когда цикл завершается и запускается третий раздел.
Третий раздел - это последний оператор, который будет выполняться каждый раз при запуске цикла.
Итак, в случае, который мы только что видели, цикл будет выполнен 3 раза. Вот порядок команд:
int i = 0;
i < 3 // 0 < 3 = true
// Inside of loop
i++ // i is now 1
i < 3 // 1 < 3 = true
// Inside of loop
i++ // i is now 2
i < 3 // 2 < 3 = true
// Inside of loop
i++ // i is now 3
i < 3 // 3 < 3 = false
// Loop is done...
Мы можем опустить первую и третью часть цикла (хотя это будет странно), и цикл все равно будет работать:
for (;i < 5;) {}
В случаях, когда мы хотим использовать цикл, который выглядит так, мы используем while
цикл
Синтаксис очень похож на предыдущий, поскольку мы рассмотрели:
while (condition) {}
Условие будет выполняться в первый раз при входе и каждый раз при завершении цикла. Если он вернет false, цикл не запустится.
Если мы хотим, чтобы цикл всегда выполнялся хотя бы один, мы можем использовать do-while
do {
} while(condition);
Обратите внимание на значок ;
в конце «делай-то».
Другая версия for - это foreach. Ключевое слово, которое мы используем, по-прежнему for
, но когда мы хотим перебрать элементы внутри массива, мы можем просто использовать его:
int[] arr = {2, 0, 1, 3};
for (int el : arr) {
System.out.println(el);
}
Это короткая версия, эквивалентная:
int[] arr = {1, 9, 9, 5};
for (int i = 0; i < arr.length; i++) {
int el = arr[i];
System.out.println(el);
}
Обратите внимание: если вы хотите использовать индекс элемента внутри цикла, вы должны использовать более длинную версию и не можете использовать foreach.
Эти два ключевых слова помогают нам контролировать цикл изнутри.
break
вызовет остановку цикла и сразу же перейдет к следующему оператору после цикла:
int i;
for (i = 0; i < 5; i++) {
if (i >= 2) {
break;
}
System.out.println("Yuhu");
}
System.out.println(i);
// Output:
// Yuhu
// Yuhu
// 2
continue
остановит текущую итерацию и перейдет к следующей. Обратите внимание, что внутри цикла for по-прежнему будет выполняться третий раздел.
int i;
for (i = 0; i < 5; i++) {
if (i >= 3) {
break;
}
System.out.println("Yuhu");
if (i >= 1) {
continue;
}
System.out.println("Tata");
}
System.out.println(i);
// Output
// Yuhu
// Tata
// Yuhu
// Yuhu
// 3
Просмотрите и распечатайте все четные числа, каждое в отдельной строке, из списка номеров в том же порядке, в котором они были получены. Не печатайте в последовательности числа, идущие после 237.