bucle for en Java | Puntos importantes

El bucle en los lenguajes de programación es una característica que facilita la ejecución de un conjunto de instrucciones/funciones repetidamente mientras alguna condición se evalúa como verdadera. En Java, es poco probable que cualquier lenguaje de programación proporcione cuatro formas de ejecutar los bucles, a saber, bucle while, bucle for, bucle for-each, bucle do-while o podemos llamarlo básicamente tres tipos de bucles en algunos libros como bucle for-each es tratado como bucle for mejorado. Analicemos el bucle for en detalle.

En general, tendemos a usar bucles while, ya que obtenemos una mejor comprensión si nos interesan los bucles de aprendizaje, pero después de una saturación, nosotros, como programadores, tendemos a inclinarnos hacia el bucle for, ya que es más limpio y las bases se llevan a cabo de manera directa. tenemos que comprender cuidadosamente la sintaxis de la siguiente manera:

Sintaxis: consta de tres partes, a saber, como se enumeran:

  • Inicialización de variables
  • Condición específica según el requisito sobre el cual se necesitan iterar estas variables definidas
  • Una parte de terminación en la que generalmente jugamos con variables para llegar al estado de condición de terminación.
for(initialization; boolean expression; update statement) { 
// Body of for loop 
} 

Esta es generalmente la estructura de peregrinaje básica de for loop.

Veamos algunos ejemplos básicos del uso de for loop y las trampas comunes al usar for loop, lo que nos permite saber aún mejor cómo se representará el funcionamiento interno mientras jugamos con códigos. 

Caso de uso 1: es imprescindible proporcionar una expresión en el bucle for

El bucle for debe consistir en una expresión válida en la declaración del bucle que falla, lo que puede conducir a un bucle infinito. La declaración 

for ( ; ; ) 
is similar to
while(true)

Nota: Lo dicho anteriormente es el quid de la programación avanzada, ya que es el origen de la construcción lógica en la programación.

Ejemplo

Java

// Java program to illustrate Infinite For loop
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // For loop
        for (;;) {
 
            // Print statement everytime condition holds
            // true making body to execute
            System.out.println("This is an infinite loop");
        }
    }
}

Salida: Imprime la declaración «Este es un ciclo infinito» repetidamente.

This is an infinite loop
This is an infinite loop
This is an infinite loop
This is an infinite loop
...
...
This is an infinite loop

Caso de uso 2: inicialización de múltiples variables

En Java, se pueden inicializar varias variables en el bloque de inicialización del bucle for independientemente de si lo usa en el bucle o no.

Ejemplo:

Java

// Java Program to Illustrate Initializing Multiple
// Variables in Initialization Block
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Declaring an integer variable
        int x = 2;
 
        // For loop to iterate
        for (long y = 0, z = 4; x < 10 && y < 10;
             x++, y++) {
            // Printing value/s stored in variable named y
            // defined inside body of for loop
            System.out.println(y + " ");
        }
 
        // Printing value/s stored in variable named x
        // defined outside body of for loop
        System.out.println(x);
    }
}
Producción

0 
1 
2 
3 
4 
5 
6 
7 
10

En el código anterior, hay una variación simple en el ciclo for. Dos variables se declaran e inicializan en el bloque de inicialización. La variable ‘z’ no se está utilizando. Además, los otros dos componentes contienen variables adicionales. Por lo tanto, se puede ver que los bloques pueden incluir variables adicionales que pueden no estar referenciadas entre sí. 

Caso de uso 3: Redeclaración de una variable en el bloque de inicialización

Supongamos que una variable de inicialización ya está declarada como un número entero. Aquí no podemos volver a declararlo en bucle for con otro tipo de datos de la siguiente manera:

Ejemplo 1:

Java

// Java Program to Illustrate Redeclaring a Variable
// in Initialization Block
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Declaring an integer variable
        int x = 0;
 
        // Redeclaring above variable
        // as long will not work
        for (long y = 0, x = 1; x < 5; x++) {
 
            // Printing the value inside the variable
            System.out.print(x + " ");
        }
    }
}

Producción:

Example3.java:12: error: variable x is already defined in method main(String[])
        for(long y = 0, x = 1; x < 5; x++)

Aquí, x ya se inicializó a cero como un número entero y se vuelve a declarar en el bucle con el tipo de datos largo. Pero este problema se puede solucionar modificando ligeramente el código. Aquí, las variables x e y se declaran de forma diferente. 

Ejemplo 2:

Java

// Java Program to Illustrate Redeclaring a Variable
// in Initialization Block
 
// Main class
public class GFG {
 
    // main driver method
    public static void main(String[] args)
    {
        // Declaring and initializing variables
        int x = 0;
        long y = 10;
 
        // For loop to iterate over till
        // custom specified check
        for (y = 0, x = 1; x < 5; x++) {
           
            // Printing value contained in memory block
            // of the variable
            System.out.print(x + " ");
        }
    }
}

Producción: 

1 2 3 4

Caso de uso 4: las variables declaradas en el bloque de inicialización deben ser del mismo tipo

Es de sentido común que cuando declaramos una variable como se muestra a continuación:

 int x, y;

Aquí ambas variables son del mismo tipo. Es lo mismo en el bloque de inicialización de bucle for también. 

Ejemplo:

Java

// Java program to Illustrate Declaring a Variable
// in Initialization Block
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Declaring integer variable
        // int x;
 
        // Note:  This will cause error;
 
        // Redeclaring x as long will not work
        for (long y = 0, x = 1; x < 5; x++) {
           
            // Printing the value stored
            System.out.print(x + " ");
        }
    }
}
Producción

1 2 3 4 

Caso de uso 5: solo se puede acceder a las variables en el bucle dentro de

Solo se puede acceder a las variables que se declaran en el bloque de inicialización dentro del ciclo, ya que tenemos según el concepto del alcance de las variables. 

Ejemplo:

Java

// Java Program to Illustrate Scope of Initializing
// Variables Within the oop
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // x and y scope is declared only
        // within for loop
        for (int x = 0, y = 0; x < 3 && y < 3; x++, y++) {
            // Printing value stored in variable named y
            System.out.println(y + " ");
        }
 
        // Printing value stored in variable named x
        // after inner loop is over
        System.out.println(x);
    }
}

Error:

Example5.java:13: error: cannot find symbol
        System.out.println(x);

En el ejemplo anterior, la variable x no es accesible fuera del bucle. La declaración que se comenta da un error de compilación. 

Este artículo es una contribución de Preeti Pardeshi . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *