logo

Цикли в Java

Цикл у мовах програмування — це функція, яка полегшує виконання набору інструкцій/функцій багаторазово, поки якась умова оцінюється як істинна. Java надає три способи виконання циклів. Хоча всі способи забезпечують однакову базову функціональність, вони відрізняються синтаксисом і часом перевірки умов.

java надає три типи умовних операторів, цей другий тип є оператором циклу.



  • цикл while: Цикл while — це оператор потоку керування, який дозволяє багаторазово виконувати код на основі заданої логічної умови. Цикл while можна розглядати як повторюваний оператор if.

Синтаксис:

while (boolean condition) { loop statements... }>

Java








/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> >public> static> void> main (String[] args) {> >int> i=>0>;> >while> (i<=>10>)> >{> >System.out.println(i);> >i++;> >}> >}> }>

>

>

Вихід

0 1 2 3 4 5 6 7 8 9 10>
  • Блок-схема: for-loop-in-java
    • Цикл While починається з перевірки логічної умови. Якщо воно оцінюється як істина, тоді виконуються оператори тіла циклу, інакше виконується перший оператор, наступний за циклом. З цієї причини його також називають Вхідний контур контролю
    • Як тільки умова оцінюється як істинна, оператори в тілі циклу виконуються. Зазвичай оператори містять значення оновлення для змінної, що обробляється для наступної ітерації.
    • Коли умова стає хибною, цикл завершується, що означає кінець його життєвого циклу.
  • для циклу: Цикл for забезпечує стислий спосіб запису структури циклу. На відміну від циклу while, оператор for використовує ініціалізацію, умову та приріст/зменшення в одному рядку, таким чином забезпечуючи коротшу структуру циклу, яку легко налагодити.

Синтаксис:

for (initialization condition; testing condition;increment/decrement) { statement(s) }>

Java




/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> >public> static> void> main (String[] args) {> >for> (>int> i=>0>;i<=>10>;i++)> >{> >System.out.println(i);> >}> >}> }>

>

>

Вихід

0 1 2 3 4 5 6 7 8 9 10>
  • Блок-схема:
    do-while
      Умова ініціалізації: тут ми ініціалізуємо використовувану змінну. Він позначає початок циклу for. Можна використовувати вже оголошену змінну або оголошувати змінну, лише локально для циклу. Умова перевірки: використовується для перевірки умови виходу з циклу. Він повинен повертати логічне значення. Це також є Петля контролю входу оскільки умова перевіряється перед виконанням операторів циклу. Виконання оператора: як тільки умова оцінюється як істинна, оператори в тілі циклу виконуються. Інкремент/декремент: використовується для оновлення змінної для наступної ітерації. Завершення циклу: коли умова стає хибною, цикл завершується, позначаючи кінець його життєвого циклу.
  • робити поки: Цикл do while подібний до циклу while з тією лише різницею, що він перевіряє умову після виконання операторів, і тому є прикладом Вийти з циклу керування.

Синтаксис:

do { statements.. } while (condition);>

Java




/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> >public> static> void> main (String[] args) {> >int> i=>0>;> >do> >{> >System.out.println(i);> >i++;> >}>while>(i<=>10>);> >}> }>

>

архітектура linux
>

Вихід

0 1 2 3 4 5 6 7 8 9 10>
  • Блок-схема:
    • Цикл do while починається з виконання оператора(ів). Перевірка жодного стану з першого разу не проводиться.
    • Після виконання операторів і оновлення значення змінної умова перевіряється на істинне чи хибне значення. Якщо воно оцінюється як істина, починається наступна ітерація циклу.
    • Коли умова стає хибною, цикл завершується, що означає кінець його життєвого циклу.
    • Важливо відзначити, що цикл do-while виконає свої оператори принаймні один раз перед перевіркою будь-якої умови, і тому є прикладом циклу керування виходом.

Підводні камені петель

    Нескінченний цикл: одна з найпоширеніших помилок під час впровадження будь-якого циклу полягає в тому, що він може ніколи не вийти, тобто цикл виконується протягом нескінченного часу. Це трапляється, коли умова з якоїсь причини не виконується. Приклади: нескінченний цикл for:

Java




/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> >public> static> void> main(String[] args)> >{> >for> (;;) {> >}> >}> }>

>

>

нескінченний цикл while:

Java




/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> >public> static> void> main (String[] args) {> >while> (>true>)> >{> >// statement> >}> > >}> }>

>

>

Java




//Java program to illustrate various pitfalls.> public> class> LooppitfallsDemo> {> >public> static> void> main(String[] args)> >{> >// infinite loop because condition is not apt> >// condition should have been i>0.>> >for> (>int> i =>5>; i !=>0>; i -=>2>)> >{> >System.out.println(i);> >}> >int> x =>5>;> >// infinite loop because update statement> >// is not provided.> >while> (x ==>5>)> >{> >System.out.println('In the loop');> >}> >}> }>

>

>

Ще один підводний камінь полягає в тому, що ви можете додавати щось у свій об’єкт колекції через цикл, і у вас може вичерпатися пам’ять. Якщо ви спробуєте виконати наведену нижче програму, через деякий час буде викинуто виключення браку пам’яті.

Java




//Java program for out of memory exception.> import> java.util.ArrayList;> public> class> Integer1> {> >public> static> void> main(String[] args)> >{> >ArrayList ar =>new> ArrayList();> >for> (>int> i =>0>; i { ar.add(i); } } }>

>

>

Вихід:

Exception in thread 'main' java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Unknown Source) at java.util.Arrays.copyOf(Unknown Source) at java.util.ArrayList.grow(Unknown Source) at java.util.ArrayList.ensureCapacityInternal(Unknown Source) at java.util.ArrayList.add(Unknown Source) at article.Integer1.main(Integer1.java:9)>

Вкладений цикл:

Вкладений цикл означає оператор циклу всередині іншого оператора циклу.

Існують різні комбінації використання циклу для петля, поки петля, do-while петля.

Приклад 1 Вкладений цикл for

Java


файли Linux



/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> >public> static> void> main (String[] args) {> >for>(>int> i =>0>; i <>3>; i++){> >for>(>int> j =>0>; j <>2>; j++){> >System.out.println(i);> >}> >System.out.println();> >}> >}> }>

>

>

Вихід

0 0 1 1 2 2>

Приклад 2. Вкладений цикл while

Java




import> java.io.*;> class> GFG {> >public> static> void> main(String[] args)> >{> >int> i =>1>, j =>1>;> >while> (i <=>3>) {> >while> (j <=>3>) {> >System.out.print(j);> >j++;> >}> >i++;> >System.out.println(>''>);> >j =>1>;> >}> >}> }>

>

>

Вихід

123 123 123>

Приклад 3 Вкладений цикл do while

Java


перший нащадок css



/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> >public> static> void> main(String[] args)> >{> >int> row =>1>, column =>1>;> >int> x;> >do> {> >x =>4>;> >do> {> >System.out.print(>''>);> >x--;> >}>while> (x>= рядок);> >column =>1>;> >do> {> >System.out.print(column +>' '>);> >column++;> >}>while> (column <=>5>);> >System.out.println(>' '>);> >row++;> >}>while> (row <=>5>);> >}> }>

>

>

Вихід

1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5>

Приклад 4 Вкладений цикл while і for

Java




/*package whatever //do not write package name here */> import> java.io.*;> class> GFG {> >public> static> void> main(String[] args)> >{> >int> weeks =>3>;> >int> days =>7>;> >int> i =>1>;> >// outer loop> >while> (i <= weeks) {> >System.out.println(>'Week: '> + i);> >// inner loop> >for> (>int> j =>1>; j <= days; ++j) {> >System.out.println(>' Days: '> + j);> >}> >++i;> >}> >}> }>

>

>

Вихід

Week: 1 Days: 1 Days: 2 Days: 3 Days: 4 Days: 5 Days: 6 Days: 7 Week: 2 Days: 1 Days: 2 Days: 3 Days: 4 Days: 5 Days: 6 Days: 7 Week: 3 Days: 1 Days: 2 Days: 3 Days: 4 Days: 5 Days: 6 Days: 7>