C# | bucle foreach – Part 1

Requisito previo: Bucles en C#

Hacer bucles en un lenguaje de programación es una forma de ejecutar una declaración o un conjunto de declaraciones varias veces según el resultado de una condición que se va a evaluar. La condición resultante debe ser verdadera para ejecutar sentencias dentro de bucles. El bucle foreach se utiliza para iterar sobre los elementos de la colección. La colección puede ser una array o una lista. Se ejecuta para cada elemento presente en la array.

  • Es necesario encerrar las sentencias del bucle foreach entre llaves {}.
  • En lugar de declarar e inicializar una variable de contador de bucle, declara una variable que es del mismo tipo que el tipo base de la array, seguida de dos puntos, que luego es seguida por el nombre de la array.
  • En el cuerpo del ciclo, puede usar la variable de ciclo que creó en lugar de usar un elemento de array indexado.

Sintaxis:

foreach(data_type var_name in collection_variable)
{
     // statements to be executed
}

Diagrama de flujo:

Ejemplo 1:

// C# program to illustrate the
// use of foreach loop
using System;
  
class GFG {
  
    // Main Method
    static public void Main()
    {
  
        Console.WriteLine("Print array:");
  
        // creating an array
        int[] a_array = new int[] { 1, 2, 3, 4, 5, 6, 7 };
  
        // foreach loop begin
        // it will run till the
        // last element of the array
        foreach(int items in a_array)
        {
            Console.WriteLine(items);
        }
    }
}
Producción:

Print array:
1
2
3
4
5
6
7

Explicación: el bucle foreach en el programa anterior es equivalente a:

for(int items = 0; items < a_array.Length; items++)
{
    Console.WriteLine(a_array[items]);
}

Ejemplo 2:

// C# program to illustrate 
// foreach loop 
using System;
  
class For_Each     
{
      
    // Main Method
    public static void Main(String[] arg) 
    { 
        { 
            int[] marks = { 125, 132, 95, 116, 110 }; 
              
            int highest_marks = maximum(marks); 
              
            Console.WriteLine("The highest score is " + highest_marks); 
        } 
    } 
      
    // method to find maximum
    public static int maximum(int[] numbers) 
    { 
        int maxSoFar = numbers[0]; 
          
        // for each loop 
        foreach (int num in numbers) 
        { 
            if (num > maxSoFar) 
            { 
                maxSoFar = num; 
            } 
        } 
    return maxSoFar; 
    } 
} 
Producción:

The highest score is 132

Limitaciones del bucle foreach:

  1. Los bucles Foreach no son apropiados cuando desea modificar la array :
    foreach(int num in marks) 
    {
        // only changes num not
        // the array element
        num = num * 2; 
    }
    
  2. Los bucles Foreach no realizan un seguimiento del índice . Entonces no podemos obtener el índice de array usando el ciclo ForEach
    foreach (int num in numbers) 
    { 
        if (num == target) 
        {
            return ???;   // do not know the index of num
        }
    }
    
  3. Foreach solo itera hacia adelante sobre la array en pasos individuales
    // cannot be converted to a foreach loop
    for (int i = numbers.Length - 1; i > 0; i--) 
    {
         Console.WriteLine(numbers[i]);
    }
    

Diferencia entre bucle for y bucle foreach:

  • for loop ejecuta una declaración o un bloque de declaración hasta que la condición dada sea falsa. Mientras que el bucle foreach ejecuta una declaración o un bloque de declaraciones para cada elemento presente en la array y no es necesario definir el límite mínimo o máximo.
  • En el ciclo for , iteramos la array tanto hacia adelante como hacia atrás, por ejemplo, del índice 0 al 9 y del índice 9 al 0. Pero en el ciclo foreach, iteramos una array solo hacia adelante, no hacia atrás.
  • En términos de declaración de variables, el bucle foreach tiene cinco declaraciones de variables, mientras que el bucle for solo tiene tres declaraciones de variables.
  • El bucle foreach copia la array y coloca esta copia en la nueva array para su funcionamiento. Mientras que for loop no funciona.

Publicación traducida automáticamente

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