Главная / Веб-программирование / Веб-программирование Знакомство с циклами в Java – учебник с примерами

Веб-программирование Знакомство с циклами в Java – учебник с примерами

Повторяющееся исполнение набора инструкций называется циклом. Циклы в Java делятся на три типа:

  • While;
  • For;
  • Do While
    • Выше перечислено три разных типа циклов, которые используются с одинаковой целью, и отличаются только синтаксисом;
    • Из-за синтаксических различий может отличаться и их образ действия. Вскоре мы рассмотрим эти различия.

    Java-цикл For и его различные типы

    For – самый популярный цикл из трёх доступных. Всё, что можно делать при помощи цикла while Java, легко делается и с помощью цикла for.

    Существует два типа цикла for:

  • Обычный цикл for;
  • Вложенный for.
  • Обычный цикл for

    Синтаксис:

    for(initialization; condition; incr/decr)
    {
    ——
    ——
    }

    • Когда элемент управления натыкается на цикл for, он сначала выполняет инициализацию. Эта часть выполняется один раз;
    • Затем контроллер переходит к разделу с условиями. Если оценка условий выдает результат true, то контроллер переходит к телу цикла.

    Если оценка даёт результат false, то элемент управления выходит из for и выполняет условие, следующее после цикла.

    Когда условие даёт значение true, выполняется тело цикла. Затем контроллер переходит к разделу incr/decr. Здесь указываются переменные инкремента или декремента.

    После выполнения раздела incr/decr, контроллер переходит к разделу условий. Если результат будет true, то выполняется тело цикла. Затем переход к разделу incr/decr, а потом к разделу условий. Этот процесс будет повторяться до тех пор, пока оценка условий будет равно true.

    как написать цикл на Java:

    for(int a=1; a<=3; a++)
    {
    System.out.println(“drink more water”);
    }

    В приведённом выше примере переменная инициализируется значением 1.

    Это действие происходит всего один раз. После чего контроллер переходит к условию a:

    class example
    {
    public static void main(String arg[])
    {
    int i;
    for(i=1;i<=3;i++)
    {
    System.out.print("hello world");
    }
    }
    }

    Результат:

    hello world
    hello world
    hello world

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

    То есть:

    for(int len=1;len<=max; len++)
    {
    Some statements;
    }

    int x=len; — не валидна, так как len уже освободилась;
    int len=p; — валидна, так как рассматривается в качестве новой переменной.

    Пример:

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

    Результат:

    1
    2
    3
    4
    5

    Пример программы:

    class ForLoopBasics5
    {
    public static void main(String args[])
    {
    for(int i=1;i<=5;i++)
    {
    System.out.println(i); //1 2 3 4 5
    }
    System.out.println(i);//error for unknown variable i
    }

    Результат:

    error: cannot find symbol
    System.out.print(i);
    ^

    Описание:

    В приведенной выше программе возникает ошибка, так как переменная i освобождается после выхода из цикла Java.

    Пример 2:

    class ForLoopBasics6
    {
    public static void main(String args[])
    {
    int i;
    for( i=1;i<=5;i++)
    {
    System.out.println(i); //1 2 3 4 5
    }
    System.out.println(i); //6
    }

    Результат:

    1
    2
    3
    4
    5
    6

    Описание:

    В программе, приведенной выше, ошибки не возникает, так как в ней используется переменная i, которая была объявлена за пределами цикла.

  • В теле цикла в Java может быть любое количество инструкций;
  • Все они должны быть заключены в фигурные скобки;
  • Если в теле цикла есть только одна инструкция, то фигурные скобки необязательны.
  • Пример 1:

    for(double b=2.3; b<=10; b+=1.2)
    {
    System.out.print(b);
    System.out.print(10-b);
    }

    Пример 2:

    for(int c=’A’; c<=’Z’; c++)
    {
    System.out.print(“ “+(char)c);
    }

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

    По окончании инициализации этот раздел завершается точкой с запятой. В следующем примере вложенного цикла Java мы поместили в раздел инициализации три инструкции, разделенные запятыми: (a=10), (b=20) и (c=30).

    Пример:

    for(a=10, b=20, c=30; a+b <= c ; a++)
    {
    StatementA;
    }

    Пример программы:

    class ForLoopBasics9
    {
    public static void main(String args[])
    {
    int a,b,c;
    for(a=10, b=20, c=33; a+b <= c ; a++)
    {
    System.out.println(true);
    }
    }
    }

    Результат:

    true
    true
    true

    • Подобно разделу с инициализацией, в разделе incr/decr также может быть несколько инструкций, указанных через запятую.

    Пример:

    for(a=1,b=5; a<=b; a+=2, b++)
    {
    statementA;
    }

    Пример программы:

    class ForLoopBasics10
    {
    public static void main(String args[])
    {
    int a,b,c;
    for(a=1,b=5; a<=b; a+=2, b++)
    {
    System.out.println(a +"<="+ b);
    }
    }
    }

    Результат:

    1<= 5
    3<= 6
    5<= 7
    7<= 8
    9<= 9

    Но в разделе условий цикла в Java ничего не отделяется запятыми. Все предполагаемые условия должны комбинироваться при помощи операторов AND или OR и образовывать единое условие.

    Пример:

    <b>for (a=2; a

    for(int a=9; a<=b; a++)
    {
    }

    Пример программы:

    class ForLoopBasics11
    {
    public static void main(String args[])
    {
    int a,b,c,n=10;
    a=0;
    b=1;
    System.out.print(a+" "+b+" ");
    for(int i=2;i<n;i++)
    {
    c=a+b;
    a=b;
    b=c;
    System.out.print(c+" ");
    }
    }
    }

    Результат:

    0 1 1 2 3 5 8 13 21 34

    Вложенные циклы

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

    Пример:

    for(int a=11; a<=b; a++)
    {
    statementA;
    for(int x=12; x<=y; x++)
    {
    statementB;
    }
    statementC;
    }

    В данном примере контроллер доходит до раздела инициализации за пределами цикла.

    Объяснение приведённого выше примера:

    Значением a = 11. Затем контроллер переходит к разделу условий. Если условие выдаёт значение true, контроллер переходит к телу цикла и выполняет statementA.

    Затем контроллер переходит к разделу инициализации внутреннего цикла, а после этого – к разделу условий.

    Если условия выполняется, программа переходит к телу цикла и выполняет statementB. После этого контроллер переходит к разделу с увеличением значения во внутреннем цикле for, а после – к разделу условий внутреннего цикла. Вложенный цикл Java повторяется до тех пор, пока внутреннее условие выдаёт значение true.

    Пример программы:

    class NestedForLoop
    {
    public static void main(String args[])
    {
    int i,j;
    for(i=1;i<=3;i++)
    {
    System.out.println(i+"iteration");
    for(j=1;j<=3;j++)

    {
    System.out.println(j);
    }
    }
    }
    }

    Результат:

    iteration1
    1
    2
    3
    iteration2
    1
    2
    3
    iteration3
    1
    2
    3

    Внутрь другого цикла в Java for можно поместить любую конструкцию. Здесь нет ограничения по количеству конструкций.

    Пример:

    Чтобы выйти из цикла for в середине тела, можно использовать оператор break. Он выведет контроллер из цикла, независимо от условий в объявлении цикла.

    Пример:

    for(a=16; a<=i; a+=3)
    {
    ——
    if(condition)
    break;
    ——
    }

    Если мы хотим перейти к следующей итерации цикла с середины тела (пропустив оставшиеся инструкции текущей итерации), можно использовать оператор continue.

    Пример:

    for(a=17; a<=j; a*=2)
    {
    ——
    if(condition)
    continue;
    ——
    }

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

    Иногда инициализация происходит в тот момент, когда контроллер доходит до цикла for. В таком случае в разделе инициализации можно написать пустую инструкцию (пусть это будет просто точка с запятой). Аналогичным образом можно пропустить раздел увеличения. Если использовать пустое условие (просто a), то результат будет расцениваться как true. То есть, все последующие применения будут валидными.

    Пример 1:

    int a=1;
    for( ; a<=3; a++)
    statementA;

    Пример 2:

    for(int a=1; a<=3; )
    {
    statementA;
    a++;
    }

    Пример 3:

    for(int a=1; ; a++)
    {
    if(a>3)
    break;
    statementA;
    }

    Если мы запишем цикл for как for(;;), и в нём не будет break или return, то это бесконечный цикл Java. Приведенные ниже циклы являются бесконечными.

    Пример 1: for( ; ; )
    Пример 2: for(init; true; incr)

    Цикл for в стиле foreach

    Синтаксис:

    for(variable : collection)
    {
    ——
    ——
    }

    Определение:

    Этот тип циклов используется для перехода по набору элементов в строгом порядке (от начала к концу). Набором элементов может быть массив, ArrayList, LinkedList или любая другая коллекция.

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

    Пример:

    int a[]={10,20,30,40};
    for(int i=0; i<a.length; i++)
    {
    System.out.println(a[i]);
    }

    В этом примере цикл повторяется четыре раза (количество элементов в массиве), и каждый раз выводится очередной элемент i (от 0 до 3).

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

    Пример:

    int a[]={10,20,30,40};
    for(int x : a)
    System.out.println(x);

    В данном случае переменная x получает каждое значение из массива (по одному значению на итерацию), а затем выводится. Этот подход (foreach) подходит для обслуживания всех элементов в списке. Если нам нужны отдельные фрагменты списка, то можно использовать обычный цикл в Java.

    Пример:

    ArrayList<Integer> al=new ArrayList<Integer>();
    al.add(10); al.add(20); al.add(30); al.add(40);
    for(int x : al)
    {
    System.out.println(x);
    }

    Мы можем выйти из этого цикла при помощи инструкции break. Чтобы пройтись по двухмерному массиву, можно использовать следующий код:

    int a[][]={{1,2,3,4},{5,6,7,8},{9,8,7,6}};
    for(int curArr[] : a)
    for(int curEle : curArr)
    System.out.print(curEle+" ");

    В приведённом выше примере внешний цикл в Java проходит по массиву ссылок (где каждая ссылка обращается к массиву), а внутренний цикл проходит по каждому элементу текущего массива.

    Перевод статьи “What Are Java Loops – Definition & Explanation” был подготовлен дружной командой проекта Сайтостроение от А до Я.

    О нас seoexpert

    продвижение сайта,seo оптимизация,поисковое продвижение,раскрутка сайтов,поисковая оптимизация,продвижение сайта в гугл,seo раскрутка,продвижение сайтов в яндексе,продвижение сайта в google,продвижение сайтов в топ 10,Оптимизация и продвижение сайтов,услуги продвижения сайта,заказать продвижение,продвижение сайтов в топ,сео раскрутка сайта

    Смотрите также

    Определение типа данных double в C, C++ и C#

    Double – 64-разрядная переменная с плавающей запятой Тип double — это основной тип данных, который ...