Diferencia entre for loop y Enhanced for loop en Java

Java for-loop es una declaración de flujo de control que itera una parte del programa varias veces. For-loop es el bucle más utilizado en Java. Si conocemos el número de iteraciones por adelantado, entonces for-loop es la mejor opción.

Sintaxis:

for( initializationsection ; conditional check ;  increment/decrement section)
   {
    // Code to be executed
   }

Las llaves en for loop son opcionales sin llaves en for-loop, podemos tomar solo una declaración en for-loop que no debería ser una declaración declarativa y si escribimos una declaración declarativa allí, obtendremos un error de tiempo de compilación.

Ejemplo

Java

// 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 initialization a variable
        // so we will get compile time error
        for (int i = 1; i <= 1; i++)
            int x = 0;
    }
}

 
 Producción: 

Caso 1: Ausencia del segundo for-loop 

GFG
GFG
GFG
GFG
GFG 

Caso 2: Presencia del segundo for-loop 

prog.java:28: error: variable declaration not allowed here
         int x=0;
             ^
1 error 

Explicación de salida:  

  • En la sección Inicialización, esta parte se ejecutará solo una vez en el ciclo de vida del bucle. Aquí podemos declarar e inicializar una variable local para bucle. Aquí podemos declarar cualquier cantidad de variables, pero deberíamos tener el mismo tipo por error. Si intentamos declarar un tipo de datos diferente, obtendremos un error de tiempo de compilación. En esta sección , podemos tomar cualquier instrucción Java válida, incluida ‘ System.out.println()’ .
  • Durante la verificación de la condición, podemos tomar cualquier expresión java válida que debería ser de tipo booleano. Esta parte es opcional y si no tomamos nada, el compilador siempre colocará un valor verdadero aquí.
  • En la sección Incrementar/Decrementar, podemos incrementar o disminuir el valor inicializado. En esta sección podemos tomar cualquier instrucción Java válida, incluido ‘ System.out.println()’ y esta sección también es opcional.

Bucle for mejorado (bucle for-each)

Este bucle for se introdujo en la versión 1.5 de Java y también es una declaración de flujo de control que itera una parte del programa varias veces. Este bucle for proporciona otra forma de recorrer la array o las colecciones y, por lo tanto, se usa principalmente para recorrer la array o las colecciones. Este bucle también hace que el código sea más legible y reduce la posibilidad de errores en el código.

Sintaxis:

for(data-type variable : array | collection)
  {
   // Code to be executed
  }  

Ejemplo: 

Java

// Java Program to show usage of for-each loop
 
// Importing all classes from
// java.util package
// Importing all input output classes
import java.io.*;
import java.util.*;
 
// Class
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Declaring and initializing the integer array
        // Custom integer entries in an array
        int[] array = { 1, 2, 3, 4, 5, 6 };
 
        // Accessing the element of array
        // using for-each loop
        for (int a : array) {
            // Print all elements of an array
            System.out.println(a);
        }
    }
}
Producción

1
2
3
4
5
6

 Después de visualizar ambos programas, llegamos a algunas diferencias concluyentes que se representan en formato tabular para obtener una comprensión clara de la mano. 

Bucle for normal Bucle for mejorado
Este bucle for está presente desde JDK1 Este bucle for está presente en JDK5

En un ciclo for normal, podemos aumentar el contador según nuestro deseo usando

 i=i+x( donde x es cualquier constante x=1,2,3…)

Pero el bucle for mejorado se ejecutará de forma secuencial, es decir, el contador siempre aumentará en uno.
Usando este ciclo for podemos iterar en cualquier objeto contenedor. Solo podemos iterar en ese contenedor usando este bucle para implementar la interfaz iterable.
En este bucle for, podemos iterar tanto en orden decreciente como de incremento. Pero en este ciclo for, podemos iterar solo en orden incremental.
En este ciclo for, podemos reemplazar elementos en cualquier índice específico. Pero en este bucle for, no tenemos acceso al índice, por lo que no podemos reemplazar elementos en ningún índice específico.
Al usar un bucle for normal, podemos imprimir elementos de array en el orden original o en orden inverso. Pero en el bucle for-each , podemos imprimir el elemento de array solo en el orden original, no en orden inverso

Ejemplo: elemento de impresión en una array 1D 

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

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

{

   Sistema.salida.println(x[i]);

}

Ejemplo: elemento de impresión en una array 1D usando bucle for-each 

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

para (int a : x)

{

  Sistema.salida.println(a);

}

Ejemplo: elemento de impresión en una array 2D usando bucle for

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

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

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

Sistema.salida.println(x[i][j]);

}

}

Ejemplo: elemento de impresión en una array 2D usando bucle for-each

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

para(int[ ] x1 :x){

para(int x2 : x1) {

Sistema.fuera.println(x2);

}

}

Publicación traducida automáticamente

Artículo escrito por mroshanmishra0072 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *