logo

Java Loops

Опитайте в GfG Practice Напредък' title=

Циклите в програмирането позволяват набор от инструкции да се изпълняват многократно въз основа на условие. В Java има три типа цикли, които са обяснени по-долу:

1. за цикъл

Цикълът for се използва, когато знаем броя на итерациите (знаем колко пъти искаме да повторим задача). Операторът for включва условието за инициализация и увеличение/намаляване в един ред. 

Пример: Програмата на Java по-долу демонстрира for цикъл, който отпечатва числа от 0 до 10 в един ред.



Java
// Java program to demonstrates the working of for loop import java.io.*; class Geeks {  public static void main(String[] args)  {  for (int i = 0; i <= 10; i++) {  System.out.print(i + ' ');  }  } } 

Изход
0 1 2 3 4 5 6 7 8 9 10 

Синтаксис:

за (инициализация; условие; увеличение/намаляване) {

// код за изпълнение

}

Изображението по-долу демонстрира блок-схемата на for цикъл:

Докато цикъл' title=Блок-схема на for -loop
  • Условие за инициализация : Тук инициализираме използваната променлива. Той маркира началото на for цикъл. Може да се използва вече декларирана променлива или променлива може да бъде декларирана само като локална за цикъл.
  • Условия за тестване: Използва се за тестване на изходното условие за цикъл. Трябва да върне булева стойност. Това също е входен контролен цикъл, тъй като условието се проверява преди изпълнението на операторите на цикъла.
  • Изпълнение на изявление : След като условието бъде оценено като вярно, операторите в тялото на цикъла се изпълняват.
  • Увеличаване/намаляване : Използва се за актуализиране на променливата за следваща итерация.
  • Прекратяване на цикъла : Когато условието стане невярно, цикълът прекратява, отбелязвайки края на своя жизнен цикъл.

Забележка : Има друга форма на for цикъла, известна като Подобрен for цикъл или (за всеки цикъл).

екта капуор актьор

Подобрен цикъл for (за всеки)

Този цикъл се използва за итериране на масиви или колекции.

Пример : Програмата на Java по-долу демонстрира подобрен for цикъл (за всеки цикъл) за итерация през масив и отпечатване на имена.

Java
// Java program to demonstrate  // the working of for each loop import java.io.*; class Geeks {  public static void main(String[] args)  {  String[] names = { 'Sweta' 'Gudly' 'Amiya' };  for (String name : names) {  System.out.println('Name: ' + name);  }  } } 

Изход
Name: Sweta Name: Gudly Name: Amiya 

Синтаксис:

за (променлива тип данни: arrayOrCollection) {

// код за изпълнение

}

2. докато Loop

Цикълът while се използва, когато искаме да проверим условието, преди да изпълним тялото на цикъла.

Пример: Програмата на Java по-долу демонстрира цикъл while, който отпечатва числа от 0 до 10 в един ред.

Java
// Java program to demonstrates  // the working of while loop import java.io.*; class Geeks {  public static void main(String[] args)  {  int i = 0;  while (i <= 10) {  System.out.print(i + ' ');  i++;  }  } } 

Изход
0 1 2 3 4 5 6 7 8 9 10 

Синтаксис:

докато (условие) {

// код за изпълнение

}

Изображението по-долу демонстрира блок-схемата на цикъла while:

jsp
Do-while-loop' loading='lazy' title=Блок-схема на цикъла while
  • Докато цикълът започва с проверка на булево условие. Ако се изчисли като true, тогава операторите на тялото на цикъла се изпълняват, в противен случай се изпълнява първият оператор, следващ цикъла. Поради тази причина се нарича още Входен контролен контур
  • След като условието бъде оценено като вярно, операторите в тялото на цикъла се изпълняват. Обикновено изразите съдържат актуализирана стойност за променливата, която се обработва за следващата итерация.
  • Когато условието стане невярно, цикълът прекратява, което бележи края на неговия жизнен цикъл.

3. Do-while Loop

Цикълът do-while гарантира, че кодовият блок се изпълнява поне веднъж преди да проверите състоянието.

Пример : Програмата на Java по-долу демонстрира do-while цикъл, който отпечатва числа от 0 до 10 в един ред.

Java
// Java program to demonstrates  // the working of do-while loop import java.io.*; class Geeks {  public static void main(String[] args)  {  int i = 0;  do {  System.out.print(i + ' ');  i++;  } while (i <= 10);  } } 

Изход
0 1 2 3 4 5 6 7 8 9 10 

Синтаксис:

правя {

// код за изпълнение

} докато (условие);

Изображението по-долу демонстрира диаграмата на do-while цикъл:

' loading='lazy' title=Блок-схема на do-while цикъл
  • do while цикълът започва с изпълнението на оператора. Няма проверка на нито едно условие за първи път.
  • След изпълнението на операторите и актуализирането на стойността на променливата условието се проверява за истинска или невярна стойност. Ако бъде оценено като вярно, започва следващата итерация на цикъла.
  • Когато условието стане невярно, цикълът прекратява, което бележи края на неговия жизнен цикъл.
  • Важно е да се отбележи, че do-while цикълът ще изпълни операторите си поне веднъж, преди да бъде проверено някое условие и следователно е пример за изходен контролен цикъл.

Често срещани грешки в цикъла и как да ги избегнете

Ако циклите не се използват правилно, те могат да въведат клопки и грешки, които засягат четимостта и функционалността на производителността на кода. По-долу са някои често срещани клопки на циклите:

1. Безкрайни цикли

Това е една от най-честите грешки при внедряването на какъвто и да е вид цикъл е, че може никога да не излезе, т.е. цикълът да работи безкрайно време. Това се случва, когато условието се провали по някаква причина.

Видове безкрайни цикли:

  • безкраен за цикъл
  • безкраен цикъл докато

Пример: Тук и двата примера демонстрират безкрайните цикли.

Infinite For Loop
// Java program to demonstrate  // the infinite for loop import java.io.*; class Geeks {  public static void main(String[] args)  {  for (int i = 0; i < 5; i--) {  System.out.println(  'This loop will run forever');  }  } } 
Infinite While Loop
// Java Program to demonstrate  // the infinite while loop import java.io.*; class Geeks {  public static void main(String[] args)  {  while(true)  {  System.out.println(  'Basic example of infinte loop');  }  } } 

Изход: Когато стартирате и двата горни кода, ще получите TLE (Time Limit Exceeded) грешка.

2. Грешки Off-by-One

Грешките Off-by-One се причиняват, когато цикълът се изпълнява един повече или един по-малко път, отколкото сте искали. По принцип това се случва, когато условието за цикъл не е зададено правилно.

Пример : Java програмата по-долу демонстрира грешка Off-by-One, при която цикълът се изпълнява 6 пъти, а ние очаквахме да се изпълнява 5 пъти.

Java
// Java Program to demonstrates Off-by-One Errors import java.io.*; class Geeks {  public static void main(String[] args)  {  for (int i = 0; i <= 5; i++) {  System.out.print(i + ' ');  }  } } 

3. Модифициране на променливи на цикъла вътре в цикъла

Когато променим условието на цикъла (като i) вътре в цикъла, това може да накара цикъла да пропусне определени итерации или да се държи по начини, които не сме очаквали. Това може да доведе до грешки или неочаквано поведение.

Пример : Java програмата по-долу демонстрира модифициране на променливата на цикъла вътре в цикъла, което кара цикъла да пропуска определени итерации и да се държи неочаквано.

Java
// Java program demonstrates  // modification in i variable import java.io.*; class Geeks {  public static void main(String[] args)  {  for (int i = 0; i < 5; i++) {  if (i == 2) {    // Modifies the loop variable and skips  // the next iteration  i++;  }  System.out.println(i);  }  } } 

4. Празно тяло на цикъла

Празно тяло на цикъл възниква, когато цикъл е написан за итерация, но не изпълнява никакви операции вътре в цикъла. Изпълнението на цикъл без никакви полезни операции в него може да бъде объркващо.

Пример: Програмата на Java по-долу демонстрира тялото на празен цикъл.

Java
// Java program to demonstrates Empty loop body import java.io.*; class Geeks {  public static void main(String[] args)  {  for (int i = 0; i < 10; i++) {    // Empty body no operations  }  } } 

За това няма да се генерира изход, защото тялото на цикъла е празно.

Обобщена таблица

Тип контур

Кога да използвате

Проверка на състоянието

Изпълнява ли се поне веднъж?

двоично дърво за преминаване по пощата

за цикъл

Когато искате точни итерации

Преди тялото на цикъла Нарича се Контролиран вход.

не

докато цикъл

Когато първо трябва да проверите състоянието.

Преди тялото на цикъла Нарича се Контролиран вход.

не

do-while цикъл

Когато трябва да избягате поне веднъж

След тялото на цикъла Нарича се Изход-контролиран.

да

за всеки цикъл

какво е jquery

Когато обработите всички елементи на колекцията

Вътрешна обработка

не

Свързани публикации:

  • за цикъл
  • докато цикъл
  • do-while цикъл
Създаване на тест