Övning – Implementera foreach-instruktionen
Anta att du arbetar för ett tillverkningsföretag. Företaget behöver dig för att slutföra en inventering av ditt lager för att fastställa antalet produkter som är redo att levereras. Förutom det totala antalet färdiga produkter måste du rapportera antalet färdiga produkter som lagras i varje enskild lagerplats i ditt lager, tillsammans med en löpande summa. Den här löpande summan används för att skapa en spårningslogg så att du kan dubbelkolla ditt arbete och identifiera "krympning".
Loopa igenom en matris med en foreach-sats
Instruktionen foreach ger ett enkelt, rent sätt att iterera genom elementen i en matris. -instruktionen foreach bearbetar matriselement i ökande indexordning, från index 0 och slutar med indexlängd - 1. Den använder en tillfällig variabel för att lagra värdet för matriselementet som är associerat med den aktuella iterationen. Varje iteration kör kodblocket som finns under deklarationen foreach .
Här är ett enkelt exempel:
string[] names = { "Rowena", "Robin", "Bao" };
foreach (string name in names)
{
Console.WriteLine(name);
}
Under nyckelordet foreach körs koden som innehåller Console.WriteLine(name); en gång för varje element i names-matrisen. När .NET Runtime loopar igenom varje element i matrisen tilldelas värdet i det aktuella elementet i names-matrisen till den tillfälliga variabeln name så att det är enkelt att komma åt den inne i kodblocket.
Om du körde koden visas följande resultat.
Rowena
Robin
Bao
Använd -instruktionen foreach för att skapa en summa av alla objekt som finns i varje lagerplats i ditt lager.
Skapa och initiera en matris med int
Kontrollera att du har en tom Program.cs fil öppen i Visual Studio Code.
Om det behövs öppnar du Visual Studio Code och utför sedan följande steg för att förbereda en Program.cs fil i redigeraren:
På menyn Arkiv väljer du Öppna mapp.
Använd dialogrutan Öppna mapp för att navigera till och öppna sedan mappen CsharpProjects .
I vyn Visual Studio Code EXPLORER väljer du Program.cs.
På menyn Urval i Visual Studio Code väljer du Välj alla och trycker sedan på Ta bort.
Om du vill skapa en matris av typen
intsom lagrar antalet färdiga produkter i varje lagerplats anger du följande kod:int[] inventory = { 200, 450, 700, 175, 250 };
Lägga till en foreach-instruktion för att iterera via matrisen
Om du vill skapa en
foreachinstruktion som itererar genom varje element i matriseninventoryanger du följande kod:foreach (int items in inventory) { }Observera att instruktionen
foreachtillfälligt tilldelar värdet för det aktuella matriselementet till enintvariabel med namnetitems.Kontrollera att koden matchar följande:
int[] inventory = { 200, 450, 700, 175, 250 }; foreach (int items in inventory) { }
Lägg till en variabel för att summera värdet för varje element i matrisen
Placera markören på den tomma kodraden ovanför instruktionen
foreach.Om du vill deklarera en ny variabel som representerar summan av alla färdiga produkter i ditt lager anger du följande kod:
int sum = 0;Se till att du deklarerar variabeln utanför instruktionen .
Placera markören i kodblocket i -instruktionen
foreach.Om du vill lägga till det aktuella värdet som lagras i
itemsvariabelnsumanger du följande kod:sum += items;Se till att koden matchar följande:
int[] inventory = { 200, 450, 700, 175, 250 }; int sum = 0; foreach (int items in inventory) { sum += items; }
Visa det slutliga värdet för summan
Skapa en tom kodrad under kodblocket för -instruktionen
foreach.Om du vill rapportera den slutliga summan av objekt i lagret anger du följande kod:
Console.WriteLine($"We have {sum} items in inventory.");Kontrollera att koden matchar följande:
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.");Klicka på Spara på Visual Studio Code-menyn.
Högerklicka på TestProject för att öppna en terminal på mappen TestProject och välj sedan Öppna i integrerad terminal.
I terminalkommandot skriver du dotnet run och trycker sedan på Retur.
We have 1775 items in inventory.
Skapa en variabel för att lagra det aktuella lagerplatsnumret och visa den löpande summan
För att uppfylla det slutliga kravet för ditt inventeringsrapporteringsprojekt måste du skapa en variabel som innehåller den aktuella iterationen av -instruktionen foreach så att du kan visa lagerplatsen och antalet färdiga objekt i den lagerplatsen, tillsammans med den löpande summan av alla lagerplatser som hittills har redovisats.
Skapa en tom kodrad ovanför instruktionen
foreach.Om du vill deklarera
intvariabeln med namnetbinsom initieras till0anger du följande kod:int bin = 0;Du använder
binför att lagra antalet lagerplatser vars lager för närvarande bearbetas.Ange följande kod för att öka
foreachvarje gång kodblocket körs i kodblocketbin:bin++;Observera att du använder operatorn
++för att öka värdet för variabeln med 1. Det här är en genväg förbin = bin + 1.Om du vill rapportera lagerplatsnumret, antalet färdiga produkter i lagerplatsen och den löpande summan av färdiga produkter anger du följande kod i kodblocket
foreachefterbin++;:Console.WriteLine($"Bin {bin} = {items} items (Running total: {sum})");Den här koden använder räknarvariabeln
bin, den tillfälligaforeachvariabelnitemsochsumvariabeln för att rapportera inventeringens aktuella tillstånd i ett snyggt formaterat meddelande.Kontrollera att koden matchar följande:
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.");Spara ändringarna i filen Program.cs och kör sedan programmet.
Du bör se följande 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.
Sammanfattning
Här är några saker att komma ihåg om foreach instruktioner och inkrementella värden som du har lärt dig i den här lektionen:
- Använd en
foreach-sats för att iterera genom varje element i en matris så att varje associerat kodblock körs en gång för varje element i matrisen. - I
foreach-satsen lägger du till värdet för det aktuella elementet i matrisen i en tillfällig variabel, som du kan använda inne i kodblocket. - Använd operatorn
++för att lägga till 1 till det aktuella värdet för en variabel.