Ebben a cikkben megtudhatjuk a foreach ciklusokat (a ciklus alternatívája), és hogyan használhatjuk őket tömbökkel és gyűjteményekkel.
A C # egy könnyen használható és olvashatóbb alternatívát kínál a ciklushoz, a foreach ciklust, ha tömbökkel és gyűjteményekkel dolgozunk, hogy a tömbök / gyűjtemények elemein keresztül ismétlődjünk. Az foreach hurok minden elemen keresztül iterál, ezért foreach ciklusnak hívják.
Mielőtt továbblépne a foreach hurokkal, látogasson el ide:
- C # a hurokhoz
- C # tömbök
- C # gyűjtemények
A foreach hurok szintaxisa
foreach (iterable-item elem) (// foreach hurok törzse)
Itt az iterálható elem lehet tömb vagy gyűjteménycsoport.
Hogyan működik az foreach hurok?
A in
foreach ciklussal együtt használt kulcsszót az iterálható elem iterációjára használják. Az in kulcsszó minden iterációban kiválaszt egy elemet az iterálható tételből, és eltárolja a változó elemben.
Első iteráció esetén az iterable-item első elemét az elem tárolja. A második iterációnál kiválasztják a második elemet és így tovább.
A foreach ciklus végrehajtásának száma megegyezik a tömbben vagy a gyűjteményben lévő elemek számával.
Íme egy példa a tömbön keresztüli iterációra a for ciklus segítségével:
1. példa: tömb nyomtatása ciklus használatával
using System; namespace Loop ( class ForLoop ( public static void Main(string() args) ( char() myArray = ('H','e','l','l','o'); for(int i = 0; i < myArray.Length; i++) ( Console.WriteLine(myArray(i)); ) ) ) )
Ugyanez a feladat elvégezhető a foreach hurok segítségével.
2. példa: tömb nyomtatása foreach hurok segítségével
using System; namespace Loop ( class ForEachLoop ( public static void Main(string() args) ( char() myArray = ('H','e','l','l','o'); foreach(char ch in myArray) ( Console.WriteLine(ch); ) ) ) )
Amikor mindkét programot futtatjuk, a kimenet a következő lesz:
Szia
A fenti programban a foreach ciklus a myArray tömb fölé ismétlődik. Első iterációnál az első elem, azaz a myArray (0) kiválasztásra kerül és ch-ben tárolódik.
Az utolsó iterációhoz hasonlóan az utolsó elem, azaz a myArray (4) van kiválasztva. A hurok törzsén belül a ch értéke ki van nyomtatva.
Ha mindkét programot megnézzük, a foreach ciklust használó program olvashatóbb és könnyebben érthető. Ennek oka egyszerű és kifejező szintaxisa.
Ezért a tömbökkel és gyűjteményekkel történő munka során a foreach hurok előnyösebb, mint a hurok.
3. példa: Nemek tömbjének bejárása foreach hurok segítségével
Ez a program kiszámítja a férfi és női jelöltek számát.
using System; namespace Loop ( class ForEachLoop ( public static void Main(string() args) ( char() gender = ('m','f','m','m','m','f','f','m','m','f'); int male = 0, female = 0; foreach (char g in gender) ( if (g == 'm') male++; else if (g =='f') female++; ) Console.WriteLine("Number of male = (0)", male); Console.WriteLine("Number of female = (0)", female); ) ) )
A program futtatásakor a kimenet a következő lesz:
Férfiak száma = 6 nők száma = 4
4. példa: foreach hurok listával (gyűjtemény)
Ez a program kiszámítja a listában szereplő elemek összegét.
using System; using System.Collections.Generic; namespace Loop ( class ForEachLoop ( public static void Main(string() args) ( var numbers = new List() (5,-8,3,14,9,17,0,4); int sum = 0; foreach(int number in numbers) ( sum += number; ) Console.WriteLine("Sum = (0)", sum); ) ) )
A program futtatásakor a kimenet a következő lesz:
Összeg = 44
Ebben a programban a foreach ciklust használják a gyűjteményen való áthaladásra. A gyűjtemény bejárása hasonló a tömbön való áthaladáshoz.
A gyűjtemény első elemét az első iterációnál választjuk, a második elemet a második iterációnál, és így tovább az utolsó elemig.