Øvelse – Implementere forgrunnssetningen
La oss si at du jobber for et produksjonsfirma. Firmaet trenger at du fullfører en beholdning av lageret for å bestemme antall produkter som er klare til å leveres. I tillegg til det totale antallet ferdige produkter, må du rapportere antall ferdige produkter som er lagret i hver enkelt hylle i lageret, sammen med en løpende sum. Denne løpende summen brukes til å opprette et revisjonsspor, slik at du kan dobbeltsjekke arbeidet ditt og identifisere «krymping».
Gjenta gjennom en matrise ved hjelp av forgrunn
Setningen foreach gir en enkel, ren måte å iterere gjennom elementene i en matrise på. Setningen foreach behandler matriseelementer i økende indeksrekkefølge, og starter med indeks 0 og slutter med indekslengde - 1. Den bruker en midlertidig variabel til å holde verdien for matriseelementet som er knyttet til gjeldende gjentakelse. Hver gjentakelse kjører kodeblokken som er plassert under deklarasjonen foreach .
Her er et enkelt eksempel:
string[] names = { "Rowena", "Robin", "Bao" };
foreach (string name in names)
{
Console.WriteLine(name);
}
Under nøkkelordet foreach utføres kodeblokken som inneholder én Console.WriteLine(name); gang for hvert element i matrisen names . Etter hvert som .NET-kjøretiden går gjennom hvert element i matrisen, tilordnes verdien som er lagret i gjeldende element i matrisen names , til den midlertidige variabelen name for enkel tilgang i kodeblokken.
Hvis du kjørte koden, ville du se følgende resultat.
Rowena
Robin
Bao
Bruk setningen foreach til å opprette en sum av alle varene som er tilgjengelig i hver hylle på lageret.
Opprette og initialisere en matrise med int
Kontroller at du har en tom Program.cs fil åpen i Visual Studio Code.
Hvis det er nødvendig, åpner du Visual Studio Code, og deretter fullfører du følgende trinn for å klargjøre en Program.cs fil i redigeringsprogrammet:
Velg Åpne mappe på Fil-menyen.
Bruk dialogboksen Åpne mappe til å navigere til, og åpne deretter CsharpProjects-mappen .
Velg Program.cs i Visual Studio Code EXPLORER-visningen.
Velg Merk alt på menyen For valg av Visual Studio-kode, og trykk deretter delete-tasten.
Hvis du vil opprette en matrise av typen
intsom lagrer antall ferdige produkter i hver hylle, angir du følgende kode:int[] inventory = { 200, 450, 700, 175, 250 };
Legge til en forgrunnssetning for gjentakelse gjennom matrisen
Hvis du vil opprette en
foreachsetning som itererer gjennom hvert element i matriseninventory, angir du følgende kode:foreach (int items in inventory) { }Legg merke til at setningen
foreachmidlertidig tilordner verdien for gjeldende matriseelement til enintvariabel med navnetitems.Kontroller at koden samsvarer med følgende:
int[] inventory = { 200, 450, 700, 175, 250 }; foreach (int items in inventory) { }
Legg til en variabel for å summere verdien for hvert element i matrisen
Plasser markøren på den tomme kodelinjen over setningen
foreach.Hvis du vil deklarere en ny variabel som representerer summen av alle ferdige produkter i lageret, angir du følgende kode:
int sum = 0;Kontroller at du erklærer variabelen utenfor setningen
foreach.Plasser markøren i kodeblokken for
foreachsetningen.Hvis du vil legge til gjeldende verdi som er lagret i
itemsvariabelensum, angir du følgende kode:sum += items;Sørg for at koden samsvarer med følgende:
int[] inventory = { 200, 450, 700, 175, 250 }; int sum = 0; foreach (int items in inventory) { sum += items; }
Vis den endelige verdien av summen
Opprett en tom kodelinje under kodeblokken for setningen
foreach.Hvis du vil rapportere den endelige summen av varer i beholdningen, angir du følgende kode:
Console.WriteLine($"We have {sum} items in inventory.");Kontroller at koden samsvarer med følgende:
int[] inventory = { 200, 450, 700, 175, 250 }; int sum = 0; foreach (int items in inventory) { sum += items; } Console.WriteLine($"We have {sum} items in inventory.");Klikk Lagre på Visual Studio Code File-menyen.
Hvis du vil åpne en terminal i TestProject-mappeplasseringen i UTFORSKER-visningen, høyreklikker du TestProject, og deretter velger du Åpne i integrert terminal.
Skriv inn dotnet run i terminalkommandoen, og trykk deretter ENTER.
We have 1775 items in inventory.
Opprett en variabel for å holde gjeldende hyllenummer og vise løpende totalsum
Hvis du vil oppfylle det endelige kravet til lagerrapporteringsprosjektet, må du opprette en variabel som vil inneholde gjeldende gjentakelse av foreach setningen, slik at du kan vise hyllen og antall ferdige elementer i denne hyllen, sammen med den løpende summen av alle varer med hyller som er redegjort for så langt.
Opprett en tom kodelinje over setningen
foreach.Hvis du vil deklarere
intvariabel med navnetbinsom er initialisert til0, skriver du inn følgende kode:int bin = 0;Du vil bruke
bintil å lagre nummeret på hyllen som lageret behandles for øyeblikket.foreachSkriv inn følgende kode i kodeblokken for å økebinhver gang kodeblokken kjøres:bin++;Legg merke til at du bruker operatoren
++til å øke verdien for variabelen med 1. Dette er en snarvei forbin = bin + 1.Hvis du vil rapportere hyllenummeret, antall ferdige produkter i hyllen og den løpende summen av ferdige produkter, angir du følgende kode i
foreachkodeblokken etterbin++;:Console.WriteLine($"Bin {bin} = {items} items (Running total: {sum})");Denne koden bruker tellervariabelen
bin, den midlertidigeforeachvariabelenitemsogsumvariabelen til å rapportere gjeldende status for beholdningen i en pent formatert melding.Kontroller at koden samsvarer med følgende:
int[] inventory = { 200, 450, 700, 175, 250 }; int sum = 0; int bin = 0; foreach (int items in inventory) { sum += items; bin++; Console.WriteLine($"Bin {bin} = {items} items (Running total: {sum})"); } Console.WriteLine($"We have {sum} items in inventory.");Lagre endringene i Program.cs filen, og kjør deretter programmet.
Du skal se følgende utdata:
Bin 1 = 200 items (Running total: 200) Bin 2 = 450 items (Running total: 650) Bin 3 = 700 items (Running total: 1350) Bin 4 = 175 items (Running total: 1525) Bin 5 = 250 items (Running total: 1775) We have 1775 items in inventory.
Oppsummering
Her er et par ting du kan huske om foreach setninger og trinnvise verdier som du lærte i denne enheten:
- Bruk setningen
foreachtil å gjentakelse gjennom hvert element i en matrise, og kjør den tilknyttede kodeblokken én gang for hvert element i matrisen. - Setningen
foreachangir verdien for gjeldende element i matrisen til en midlertidig variabel, som du kan bruke i brødteksten i kodeblokken. - Bruk intervalleroperatoren
++til å legge til 1 i gjeldende verdi for en variabel.