Найти тему
Все полезное здесь

Циклы в программировании

Мы часто в программировании встречали такое, что нам нужно сделать что-то несколько раз. Это может быть вывод какого-то текста, определенных чисел из заданного диапазона или же проход по массиву.

И не очень хочется повторяться по несколько раз и писать одинаковые строчки кода. А представим, что нас попросили вывести все четные числа от 1 до 1000. И как нам быть? Писать все вручную? Не думаю, что это хорошая идея. Чтобы этого не делать придумали циклы.

Циклы позволяют нам выполнять одно действие несколько раз, без повторного написания кода.

Мы рассмотрим три вида циклов: с предусловием, постусловием, а также цикл с параметром.

Примеры кода я буду приводить на java

Начнем с цикла с предусловием. Выглядит он следующим образом:

public class Example {
public static void main(String[] args) {
while ( //условие ){
//какой-то код
//изменение условия
}
}
}

В начале идет ключевое слово while. После него в скобках указываем наше условие. И пока это самое условие истинно, будет выполняться наш код внутри. Также важный момент: внутри блока кода нам нужно, чтобы наше условие как-то изменялось, потому что, если этого не будет, произойдет бесконечный цикл, который остановится только после прерывания работы самой программы.

Давайте рассмотрим задачку, о которой я говорил в начале. Нам нужно вывести все четные числа от 1 до 1000:

public class Zadacha {
public static void main(String[] args) {
int i = 1;
while (i <= 1000){
if (i % 2 == 0) System.out.println(i);
i++;
}
}
}

Перейдем к следующему циклу - цикл с постусловием. Думаю, здесь от это самого слова "постусловие" понятно, что условие будет где-то после. А после чего? Оно будет после блока кода, то есть сначала выполнится код, а потом проверится условие. Данный вид цикла гарантирует, что один раз программа точно выполнится. Выглядит следующим образом:

public class Example {
public static void main(String[] args) {
int i = 0;
do {
//какой-то код
//изменение условия
} while(
//условие);
}
}

По сравнению с циклом с предусловием, данный цикл выполнится один раз даже есть условие ложно.

Вернемся к предыдущей задачке и рассмотрим ее с помощью данного цикла. Нам нужно вывести все четные числа от 1 до 1000:

public class Zadacha {
public static void main(String[] args) {
int i = 1;
do {
if (i % 2 == 0) System.
out.println(i);
i++;
} while(i <= 1000);
}

}

Этот вид цикла хорош тем, что какое бы условие не было, верное или неверное, код внутри все равно выполнится, один раз точно, иногда это хорошо и нужно в программе.

И завершающий цикл - цикл с параметром. Сразу покажу, как он выглядит. В скобках после for у нас будет счетчик, где start - начало, finish - конец, step - с каким шагом наш счетчик будет меняться.

public class Example {
public static void main(String[] args) {
for (start; finish; step){
//какой-то код
}
}
}

Там, где написано start, мы присваиваем значение переменной, которая будет меняющимся счетчиком Далее идет finish, где указывается условие, то есть до какого значения мы должны двигать наш счетчик. Step - шаг, с которым мы будем двигать наш счетчик, можно двигать как на единицу, так и на большее число.

Решим предыдущую задачку с этим циклом. Нам нужно вывести все четные числа от 1 до 1000:

public class Zadacha {
public static void main(String[] args) {
for (int i = 1; i <= 1000; i++) {
if (i % 2 == 0) System.
out.println(i);
}
}
}

Здесь мы изменяем наш счетчик на единицу, внутри цикла проверяем, делится ли число на два без остатка. Но от этого в данном случае можно избавиться, а именно начать счетчик с минимального четного числа - с двух и изменять счетчик на два. При этом мы еще не будем использовать условие. То же самое можно сделать с предыдущими циклами. Получится тот же результат.

public class Zadacha {
public static void main(String[] args) {
for (int i = 2; i <= 1000; i+=2) {
System.
out.println(i);
}
}
}

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

Итог:

есть три цикла: с предусловием, постусловием и параметром. Первый цикл вам нужен тогда, когда вы хотите, чтобы код выполнялся пока истинно какое-то условие. Домашний пример: вы готовите суп и в рецепте написано, что солить нужно до тех пор, пока суп не стал соленым. Как только вы точно чувствуете, что суп соленый, вы прекращаете солить. Второй вид цикла нужен, если вам нужно, чтобы код выполнился один раз точно, независимо от условия. Опять вернемся к примеру с супом. В рецепте написано, что независимо от того, соленый ли суп, вам нужно один раз точно посолить. А цикл с параметром нужен тогда, когда вам нужно проделать что-то несколько раз. Ну например, сказали посолить суп пять раз. Вот тут вы используете цикл с параметром

Надеюсь, было понятно и интересно. Буду рад лайку и комментариям.

-2