Tässä artikkelissa opit foreach-silmukoista (vaihtoehto loopille) ja niiden käytöstä taulukoiden ja kokoelmien kanssa.
C # tarjoaa helppokäyttöisen ja luettavamman vaihtoehdon silmukalle, foreach-silmukalle, kun työskentelet matriisien ja kokoelmien kanssa toistaaksesi taulukoiden / kokoelmien kohteita. Foreach-silmukka iteroituu jokaisen kohteen läpi, jota kutsutaan foreach-silmukaksi.
Ennen kuin siirryt eteenpäin foreach-silmukalla, käy:
- C # silmukalle
- C # -taulukot
- C # kokoelmat
Foreach-silmukan syntaksi
foreach (iterable-item -elementti) (// foreach-silmukan runko)
Tässä iteroitava kohde voi olla matriisi tai kokoelmaluokka.
Kuinka foreach-silmukka toimii?
in
Avainsana käytetään yhdessä foreach silmukkaa käytetään iteraatiota yli iterable-erä. In avainsanassa valitsee kohteen iteroitavasta alkiosta jokaisessa iteraatiossa ja tallentaa sen muuttujaelementtiin.
Ensimmäisellä iteraatiolla iteroitavan kohteen ensimmäinen kohde tallennetaan elementtiin. Toisella iteraatiolla valitaan toinen elementti ja niin edelleen.
Foreach-silmukan suorittamien kertojen määrä on yhtä suuri kuin taulukon tai kokoelman elementtien lukumäärä.
Tässä on esimerkki iteroinnista taulukon kautta for-silmukkaa käyttäen:
Esimerkki 1: Taulukon tulostaminen silmukkaa varten
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)); ) ) ) )
Sama tehtävä voidaan tehdä foreach-silmukalla.
Esimerkki 2: Taulukon tulostaminen foreach-silmukalla
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); ) ) ) )
Kun suoritamme molemmat ohjelmat, tulos on:
Hei
Edellä olevassa ohjelmassa foreach-silmukka toistaa taulukon myArray. Ensimmäisellä iteraatiolla ensimmäinen elementti eli myArray (0) valitaan ja tallennetaan kansioon ch.
Vastaavasti viimeisellä iteraatiolla valitaan viimeinen elementti eli myArray (4). Silmukan rungon sisällä ch: n arvo tulostetaan.
Kun tarkastelemme molempia ohjelmia, foreach-silmukkaa käyttävä ohjelma on luettavampi ja helpompi ymmärtää. Tämä johtuu sen yksinkertaisesta ja ilmeikkäästä syntaksista.
Siksi foreach-silmukka on parempana silmukalle kuin matriisien ja kokoelmien kanssa työskenneltäessä.
Esimerkki 3: sukupuoliryhmän kulkeminen foreach-silmukan avulla
Tämä ohjelma laskee mies- ja naisehdokkaiden määrän.
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); ) ) )
Kun suoritamme ohjelmaa, tulos on:
Urosmäärä = 6 Naarasmäärä = 4
Esimerkki 4: Foreach-silmukka, jossa on luettelo (kokoelma)
Tämä ohjelma laskee luettelon elementtien summan.
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); ) ) )
Kun suoritamme ohjelmaa, tulos on:
Summa = 44
Tässä ohjelmassa foreach-silmukkaa käytetään kulkemaan kokoelman läpi. Kokoelman kulkeminen on samanlainen kuin matriisin läpi kulkeminen.
Kokoelman ensimmäinen elementti valitaan ensimmäiseen iteraatioon, toinen elementti toiseen iteraatioon ja niin edelleen viimeiseen elementtiin asti.