Cvičení – implementace příkazu foreach
Předpokládejme, že pracujete pro výrobní společnost. Společnost potřebuje, abyste dokončili inventář vašeho skladu, abyste zjistili počet produktů, které jsou připravené k odeslání. Kromě celkového počtu hotových produktů musíte kromě celkového počtu hotových produktů nahlásit počet hotových produktů uložených v každém jednotlivém koši ve skladu spolu s průběžným součtem. Tento průběžný součet se použije k vytvoření záznamu auditu, abyste mohli pečlivě zkontrolovat svou práci a identifikovat "zmenšení".
Postupné procházení pole příkazem foreach
Příkaz foreach poskytuje jednoduchý a čistý způsob iterace prvky pole. Příkaz foreach zpracovává prvky pole v rostoucím pořadí indexu počínaje indexem 0 a končí indexem Délka - 1. Používá dočasnou proměnnou k uložení hodnoty prvku pole přidruženého k aktuální iteraci. Každá iterace spustí blok kódu, který se nachází pod deklarací foreach .
Tady je jednoduchý příklad:
string[] names = { "Rowena", "Robin", "Bao" };
foreach (string name in names)
{
Console.WriteLine(name);
}
Pod klíčovým slovem foreach se blok kódu, který obsahuje Console.WriteLine(name);, provede jednou pro každý prvek pole names. Když modul runtime .NET v tomto bloku kódu postupně prochází jednotlivé prvky pole, přiřadí se hodnota uložená v aktuálním prvku pole names dočasné proměnné name pro snadný přístup.
Pokud jste kód spustili, zobrazil by se následující výsledek.
Rowena
Robin
Bao
foreach Pomocí příkazu vytvořte součet všech položek na ruce v každé přihrádce vašeho skladu.
Vytvoření a inicializace pole int
Ujistěte se, že máte v editoru Visual Studio Code otevřený prázdný soubor Program.cs.
V případě potřeby otevřete Visual Studio Code a pak následujícím postupem připravte soubor Program.cs v Editoru:
V nabídce Soubor vyberte Otevřít složku.
Pomocí dialogového okna Otevřít složku přejděte na složku CsharpProjects a otevřete ji.
V zobrazení Průzkumníka editoru Visual Studio Code vyberte Program.cs.
V nabídce Výběru editoru Visual Studio Code vyberte Vybrat vše a stiskněte klávesu Delete.
Pokud chcete vytvořit pole typu
int, do kterého se ukládá počet hotových produktů v každé přihrádce, zadejte následující kód:int[] inventory = { 200, 450, 700, 175, 250 };
Přidání příkazu foreach pro iteraci prostřednictvím pole
Pokud chcete vytvořit
foreachpříkaz, který prochází každý prvekinventorypole, zadejte následující kód:foreach (int items in inventory) { }Všimněte si, že příkaz
foreachdočasně přiřadí hodnotu aktuálního prvku pole proměnnéints názvemitems.Ujistěte se, že váš kód odpovídá následujícímu:
int[] inventory = { 200, 450, 700, 175, 250 }; foreach (int items in inventory) { }
Přidejte proměnnou, která sečte hodnotu každého prvku v poli.
Umístěte kurzor na prázdný řádek kódu nad
foreachpříkazem.Pokud chcete deklarovat novou proměnnou, která představuje součet všech hotových produktů ve vašem skladu, zadejte následující kód:
int sum = 0;Ujistěte se, že deklarujete proměnnou mimo
foreachpříkaz.Umístěte kurzor do bloku
foreachkódu příkazu.Pokud chcete přidat aktuální hodnotu uloženou
itemsdosumproměnné, zadejte následující kód:sum += items;Ujistěte se, že váš kód odpovídá následujícímu:
int[] inventory = { 200, 450, 700, 175, 250 }; int sum = 0; foreach (int items in inventory) { sum += items; }
Zobrazení konečné hodnoty součtu
Vytvořte prázdný řádek kódu pod blokem
foreachkódu příkazu.Pokud chcete nahlásit konečný součet položek v inventáři, zadejte následující kód:
Console.WriteLine($"We have {sum} items in inventory.");Ujistěte se, že váš kód odpovídá následujícímu:
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.");V nabídce Soubor editoru Visual Studio Code klepněte na tlačítko Uložit.
Chcete-li v zobrazení PRŮZKUMNÍKa otevřít terminál v umístění složky TestProject, klepněte pravým tlačítkem myši na TestProject a pak vyberte Otevřít v integrovaném terminálu.
Na příkazovém řádku terminálu zadejte příkaz dotnet run a stiskněte Enter.
We have 1775 items in inventory.
Vytvoření proměnné pro uložení aktuálního čísla přihrádky a zobrazení průběžného součtu
Abyste splnili konečný požadavek projektu generování sestav zásob, budete muset vytvořit proměnnou, která bude obsahovat aktuální iteraci foreach příkazu, abyste mohli zobrazit interval a počet dokončených položek v tomto intervalu spolu s průběžným součtem všech položek přihrádek.
Vytvořte prázdný řádek kódu nad příkazem
foreach.Chcete-li deklarovat
intproměnnou s názvembininicializovaná na0, zadejte následující kód:int bin = 0;Použijete
bink uložení počtu přihrádek, jehož inventář se právě zpracovává.foreachDo bloku kódu zadejte následující kód, který se zvýšíbinpři každém spuštění bloku kódu:bin++;Všimněte si, že pomocí operátoru
++zvýšíte hodnotu proměnné o 1. Toto je zkratka probin = bin + 1.Pokud chcete nahlásit číslo přihrádky, počet hotových produktů v koši a průběžný součet hotových produktů, zadejte do
foreachbloku kódu následující kód zabin++;:Console.WriteLine($"Bin {bin} = {items} items (Running total: {sum})");Tento kód použije proměnnou
binčítače , dočasnouforeachproměnnouitemsa proměnnousumk hlášení aktuálního stavu inventáře v pěkně naformátované zprávě.Ujistěte se, že váš kód odpovídá následujícímu:
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.");Uložte změny do souboru Program.cs a spusťte aplikaci.
Měl by se zobrazit následující výstup:
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.
Rekapitulace
Tady je pár věcí, které byste si měli zapamatovat o foreach příkazech a přírůstcích hodnot, které jste se naučili v této lekci:
- Příkaz
foreachse používá k procházení jednotlivých prvků pole, kdy se přidružený blok kódu provede jednou pro každý prvek v tomto poli. - Příkaz
foreachnastavuje hodnotu aktuálního prvku pole do dočasné proměnné, kterou můžete použít v těle tohoto bloku kódu. - Operátor
++slouží k přičtení hodnoty 1 k aktuální hodnotě proměnné.