Разница между циклом for и расширенным циклом for в Java

Опубликовано: 30 Ноября, 2021

Цикл for в Java - это оператор потока управления, который многократно повторяет часть программы. For-loop - это наиболее часто используемый цикл в java. Если мы заранее знаем количество итераций, то цикл for - лучший выбор.

Синтаксис:

 for (раздел инициализации; условная проверка; раздел увеличения / уменьшения)
   {
    // Код для выполнения
   }

Curly braces in for loop is optional without curly braces in for-loop we can take only one statement under for-loop which should not be a declarative statement and if we write declarative statement there then we will get compile-time error.

Пример

Ява

// Java Program to illustrate the use of
// for loop
// Importing all input output classes
import java.io.*;
// Importing all classes from
// java.util package
import java.util.*;
// Class
class GFG {
// Main driver method
public static void main(String[] args)
{
// 1st for-loop
// Iteration ocer 5 elements using for loop
for ( int i = 1 ; i <= 5 ; i++) {
// Print statement
System.out.println( "GFG!" );
}
// 2nd for-loop
// Declaring and intializatiization a variable
// so we will get compile time error
for ( int i = 1 ; i <= 1 ; i++)
int x = 0 ;
}
}

Выход:

Случай 1: Отсутствие второго цикла for

 GFG
GFG
GFG
GFG
GFG

Случай 2: наличие второго цикла for

 prog.java:28: ошибка: объявление переменной здесь запрещено
         int x = 0;
             ^
1 ошибка

Пояснение к выходу:

  • В разделе «Инициализация» эта часть будет выполняться только один раз в жизненном цикле цикла. Здесь мы можем объявить и инициализировать локальную переменную для цикла. Здесь мы можем объявить любое количество переменных , но должны иметь тот же тип , по ошибке , если мы пытаемся объявить другой тип данных , то мы получим компиляции - ошибка времени. В этом разделе, мы можем принять любой допустимый оператор Java , включая «System.out.println ()».
  • Во время проверки условий мы можем взять любое допустимое выражение Java, которое должно иметь логический тип. Эта часть является необязательной , и если мы не принимаем ничего , то компилятор всегда будет место истинного значения здесь.
  • в В разделе «Увеличение / уменьшение» мы можем увеличивать или уменьшать инициализированное значение. В этом разделе мы можем взять любой допустимый оператор Java, включая « System.out.println ()», и этот раздел также является необязательным.

Улучшено для цикла (для каждого цикла)

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

Синтаксис:

 for (переменная типа данных: массив | коллекция)
  {
   // Код для выполнения
  }

Пример:

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

Нормальный цикл for Улучшенный цикл for
Этот цикл for присутствует в JDK1 Этот цикл for присутствует в JDK5

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

i = i + x (где x - любая константа x = 1,2,3…)

Но улучшенный цикл for будет выполняться последовательно, т.е. счетчик всегда будет увеличиваться на единицу.
Используя этот цикл for, мы можем выполнять итерацию по любому объекту-контейнеру. Мы можем выполнять итерацию в этом контейнере только с помощью этого цикла для реализации итеративного интерфейса.
В этом цикле for мы можем выполнять итерацию как в порядке уменьшения, так и в порядке увеличения. Но в этом цикле for мы можем выполнять итерацию только в порядке увеличения.
В этом цикле for мы можем заменять элементы по любому определенному индексу. Но в этом цикле for у нас нет доступа к индексу, поэтому мы не можем заменять элементы по какому-либо конкретному индексу.
Используя обычный цикл for, мы можем печатать элементы массива либо в исходном порядке, либо в обратном порядке. Но в наличии для каждого цикла, мы можем напечатать элемент массива только в исходном порядке, а не в обратном порядке

Пример: печать элемента в одномерном массиве

int [] x = {1,2,3};

для (int i = 0; i <x.length; i ++)

{

System.out.println (x [i]);

}

Пример: печать элемента в одномерном массиве с использованием цикла for-each

int [] x = {1,2,3};

для (int a: x)

{

System.out.println (а);

}

Пример: печать элемента в 2D-массиве с использованием цикла for

int [] [] х = {{1,2,3}, {4,5,6}};

for (int i = 0; i <x.length; i ++) {

for (int j = 0; j <x [i] .length; j ++) {

System.out.println (x [i] [j]);

}

}

Пример: печать элемента в 2D-массиве с использованием цикла for-each

int [] [] х = {{1,2,3}, {4,5,6}};

for (int [] x1: x) {

for (int x2: x1) {

System.out.println (x2);

}

}

Вниманию читателя! Не прекращайте учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .