C # | цикл foreach
Опубликовано: 8 Марта, 2022
Предварительное условие: циклы в C #
Цикл в языке программирования - это способ выполнить оператор или набор операторов несколько раз в зависимости от результата условия, которое необходимо оценить. Результирующее условие должно быть истинным для выполнения операторов внутри циклов. Цикл foreach используется для перебора элементов коллекции. Коллекция может быть массивом или списком. Он выполняется для каждого элемента, присутствующего в массиве.
- Операторы цикла foreach необходимо заключить в фигурные скобки {}.
- Вместо объявления и инициализации переменной счетчика цикла вы объявляете переменную того же типа, что и базовый тип массива, за которой следует двоеточие, за которым следует имя массива.
- В теле цикла вы можете использовать созданную вами переменную цикла вместо использования элемента индексированного массива.
Синтаксис:
foreach (тип_данных имя_переменной в переменной_собрания) { // выполняемые операторы }
Схема:
Example 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); } } } |
Output:
Print array: 1 2 3 4 5 6 7
Объяснение: цикл foreach в приведенной выше программе эквивалентен:
for (int items = 0; items <a_array.Length; items ++) { Console.WriteLine (a_array [элементы]); }
Example 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; } } |
Output:
The highest score is 132
Ограничения цикла foreach:
- Циклы по каждому элементу не подходят, если вы хотите изменить массив :
foreach (целое число в знаках) { // изменяет только число, а не // элемент массива число = число * 2; }
- Циклы Foreach не отслеживают индекс . Таким образом, мы не можем получить индекс массива с помощью цикла ForEach
foreach (целое число в числах) { если (число == цель) { возвращение ???; // не знаю индекс числа } }
- Foreach выполняет итерацию по массиву только за один шаг
// нельзя преобразовать в цикл foreach for (int i = числа. длина - 1; i> 0; i--) { Console.WriteLine (числа [i]); }
Разница между циклом for и циклом foreach:
- Цикл for выполняет оператор или блок операторов до тех пор, пока данное условие не станет ложным. В то время как цикл foreach выполняет оператор или блок операторов для каждого элемента, присутствующего в массиве, и нет необходимости определять минимальный или максимальный предел.
- В цикле for мы перебираем массив как в прямом, так и в обратном направлении, например, от индекса 0 до 9 и от индекса 9 до 0. Но в цикле foreach мы повторяем массив только в прямом направлении, а не в обратном.
- С точки зрения объявления переменных, цикл foreach имеет пять объявлений переменных, тогда как цикл for имеет только три объявления переменных.
- Цикл foreach копирует массив и помещает эту копию в новый массив для работы. В то время как цикл for не работает.