Oefening: de foreach-instructie implementeren

Voltooid

Stel dat u werkt voor een productiebedrijf. Het bedrijf moet een voorraad van uw magazijn voltooien om het aantal producten te bepalen dat gereed is voor verzending. Naast het totale aantal afgewerkte producten moet u het aantal afgewerkte producten rapporteren dat in elke afzonderlijke opslaglocatie in uw magazijn is opgeslagen, samen met een lopend totaal. Dit lopende totaal wordt gebruikt om een audittrail te maken, zodat u uw werk kunt controleren en 'shrinkage' kunt identificeren.

Herhalend door een matrix gaan met behulp van foreach

De foreach instructie biedt een eenvoudige, schone manier om de elementen van een matrix te herhalen. De foreach instructie verwerkt matrixelementen in toenemende indexvolgorde, beginnend met index 0 en eindigend met indexlengte - 1. Er wordt een tijdelijke variabele gebruikt voor het opslaan van de waarde van het matrixelement dat is gekoppeld aan de huidige iteratie. Met elke iteratie wordt het codeblok uitgevoerd dat zich onder de foreach declaratie bevindt.

Hier volgt een eenvoudig voorbeeld:

string[] names = { "Rowena", "Robin", "Bao" };
foreach (string name in names)
{
    Console.WriteLine(name);
}

Onder het foreach-trefwoord wordt het codeblok met de Console.WriteLine(name); eenmalig uitgevoerd voor elk element van de names-matrix. Wanneer de .NET-runtime elk element van de matrix herhaalt, wordt de waarde die in het huidige element van de names-matrix is opgeslagen, toegewezen aan de tijdelijke variabele name voor eenvoudige toegang in het codeblok.

Als u de code hebt uitgevoerd, ziet u het volgende resultaat.

Rowena
Robin
Bao

Gebruik de foreach instructie om een som te maken van alle items in elke container van uw magazijn.

Een matrix van int maken en initialiseren

  1. Zorg ervoor dat u een leeg Program.cs bestand hebt geopend in Visual Studio Code.

    Open Zo nodig Visual Studio Code en voer vervolgens de volgende stappen uit om een Program.cs-bestand voor te bereiden in de editor:

    1. Selecteer Map openen in het menu Bestand.

    2. Gebruik het dialoogvenster Map openen om naar de map CsharpProjects te navigeren en vervolgens te openen.

    3. Selecteer Program.cs in de weergave Visual Studio Code EXPLORER.

    4. Selecteer Alles selecteren in het menu Selectie van Visual Studio Code en druk vervolgens op Delete.

  2. Als u een matrix van het type int wilt maken waarin het aantal afgewerkte producten in elke klasse wordt opgeslagen, voert u de volgende code in:

    int[] inventory = { 200, 450, 700, 175, 250 };
    

Een foreach-instructie toevoegen om de matrix te herhalen

  1. Als u een foreach instructie wilt maken die door elk element van de inventory matrix wordt herhaald, voert u de volgende code in:

    foreach (int items in inventory)
    {
    
    }
    

    U ziet dat de foreach instructie tijdelijk de waarde van het huidige matrixelement toewijst aan een int variabele met de naam items.

  2. Zorg ervoor dat uw code overeenkomt met het volgende:

    int[] inventory = { 200, 450, 700, 175, 250 };
    
    foreach (int items in inventory)
    {
    
    }
    

Een variabele toevoegen om de waarde van elk element in de matrix op tetellen

  1. Plaats de cursor op de lege coderegel boven de foreach instructie.

  2. Als u een nieuwe variabele wilt declareren die de som van alle voltooide producten in uw magazijn vertegenwoordigt, voert u de volgende code in:

    int sum = 0;
    

    Zorg ervoor dat u de variabele buiten de foreach instructie declareert.

  3. Plaats de cursor in het codeblok van de foreach instructie.

  4. Als u de huidige waarde wilt toevoegen die is opgeslagen in de items variabele, voert u de volgende code insum:

    sum += items;
    
  5. Zorg ervoor dat uw code overeenkomt met het volgende:

    int[] inventory = { 200, 450, 700, 175, 250 };
    int sum = 0;
    foreach (int items in inventory)
    {
        sum += items;
    }
    

De uiteindelijke waarde van som weergeven

  1. Maak een lege coderegel onder het codeblok van de foreach instructie.

  2. Als u de uiteindelijke som van items in uw voorraad wilt rapporteren, voert u de volgende code in:

    Console.WriteLine($"We have {sum} items in inventory.");
    
  3. Zorg ervoor dat uw code overeenkomt met het volgende:

    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.");
    
  4. Klik in het menu Visual Studio Code File op Opslaan.

  5. Als u in de EXPLORER-weergave een Terminal wilt openen op de locatie van de map TestProject, klikt u met de rechtermuisknop op TestProject en selecteert u Openen in geïntegreerde terminal.

  6. Typ dotnet run bij de Terminal-opdrachtprompt en druk op Enter.

    We have 1775 items in inventory.
    

Maak een variabele voor het huidige bin-nummer en geef het lopende totaal weer

Als u wilt voldoen aan de laatste vereiste van uw inventarisrapportageproject, moet u een variabele maken die de huidige iteratie van de foreach instructie bevat, zodat u de bin en het aantal voltooide items in die bin kunt weergeven, samen met het lopende totaal van alle items met opslaglocaties die tot nu toe zijn opgegeven.

  1. Maak een lege coderegel boven de foreach instructie.

  2. Voer de volgende code in om de variabele te intdeclareren bin met de naam 0 die is geïnitialiseerd:

    int bin = 0;
    

    U gebruikt bin om het aantal opslaglocaties op te slaan waarvan de voorraad momenteel wordt verwerkt.

  3. Voer in het foreach codeblok de volgende code in om elke keer dat het codeblok wordt uitgevoerd, te verhogen bin :

    bin++;
    

    U ziet dat u de ++ operator gebruikt om de waarde van de variabele met 1 te verhogen. Dit is een snelkoppeling voor bin = bin + 1.

  4. Als u het bin-nummer, het aantal voltooide producten in de bin en het lopende totaal van voltooide producten wilt rapporteren, voert u de volgende code in het foreach codeblok in, na bin++;:

    Console.WriteLine($"Bin {bin} = {items} items (Running total: {sum})");
    

    Deze code gebruikt uw tellervariabele bin, de tijdelijke foreach variabele itemsen uw sum variabele om de huidige status van uw inventaris te rapporteren in een mooi opgemaakt bericht.

  5. Zorg ervoor dat uw code overeenkomt met het volgende:

    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.");
    
  6. Sla de wijzigingen op in het Program.cs-bestand en voer de toepassing uit.

    U moet de volgende uitvoer zien:

    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.
    

Samenvatting

Hier volgen enkele dingen die u moet onthouden over foreach instructies en het verhogen van waarden die u in deze les hebt geleerd:

  • Gebruik de foreach-instructie om elk element in een matrix te herhalen, waarbij u het bijbehorende codeblok eenmaal uitvoert voor elk element in de matrix.
  • Met de foreach-instructie wordt de waarde van het huidige element in de matrix ingesteld op een tijdelijke variabele, die u kunt gebruiken in de hoofdtekst van het codeblok.
  • Gebruik de ++-toename-operator om 1 aan de huidige waarde van een variabele toe te voegen.