Esercizio - Implementare l'istruzione foreach
Si supponga di lavorare per un'azienda di produzione. L'azienda deve completare un inventario del magazzino per determinare il numero di prodotti pronti per la spedizione. Oltre al numero totale di prodotti completati, è necessario segnalare il numero di prodotti completati archiviati in ogni singolo contenitore nel magazzino, insieme a un totale aggiornato. Questo totale aggiornato verrà usato per creare un audit trail in modo da poter controllare di nuovo il lavoro e identificare la "compattazione".
Scorrere ciclicamente una matrice tramite foreach
L'istruzione foreach
offre un metodo semplice e diretto per scorrere gli elementi di una matrice. L'istruzione foreach
elabora gli elementi della matrice in ordine di indice crescente, a partire dall'indice 0 e terminando con l'indice Lunghezza - 1. Usa una variabile temporanea per contenere il valore dell'elemento della matrice associato all'iterazione corrente. Ogni iterazione eseguirà il blocco di codice che si trova sotto la dichiarazione foreach
.
Ecco un semplice esempio:
string[] names = { "Rowena", "Robin", "Bao" };
foreach (string name in names)
{
Console.WriteLine(name);
}
Sotto la parola chiave foreach
, il blocco di codice che contiene Console.WriteLine(name);
verrà eseguito una volta per ogni elemento della matrice names
. Quando il runtime .NET scorre ciclicamente ogni elemento della matrice, il valore archiviato nell'elemento corrente della matrice names
viene assegnato alla variabile temporanea name
per semplificare l'accesso all'interno del blocco di codice.
Se si esegue il codice, viene visualizzato il risultato seguente.
Rowena
Robin
Bao
Usare l'istruzione foreach
per creare una somma di tutti gli articoli disponibili in ogni contenitore nel magazzino.
Creare e inizializzare una matrice di int
Assicurarsi che in Visual Studio Code sia aperto un file Program.cs vuoto.
Se necessario, aprire Visual Studio Code, quindi completare la procedura seguente per preparare un file Program.cs nell'editor:
Nel menu File selezionare Apri cartella.
Usare la finestra di dialogo Apri cartella per passare alla cartella CsharpProjects e quindi aprila.
Nel pannello ESPLORA RISORSE di Visual Studio Code, selezionare Program.cs.
Nel menu Selezione di Visual Studio Code selezionare Seleziona tutto e quindi premere CANC.
Per creare una matrice di tipo
int
che archivia il numero di prodotti completati in ogni contenitore, immettere il codice seguente:int[] inventory = { 200, 450, 700, 175, 250 };
Aggiungere un'istruzione foreach per eseguire l'iterazione della matrice
Per creare un'istruzione
foreach
che esegue l'iterazione di ogni elemento della matriceinventory
, immettere il codice seguente:foreach (int items in inventory) { }
Si noti che l'istruzione
foreach
assegna temporaneamente il valore dell'elemento della matrice corrente a una variabileint
denominataitems
.Verificare che il codice corrisponda al seguente:
int[] inventory = { 200, 450, 700, 175, 250 }; foreach (int items in inventory) { }
Aggiungere una variabile per sommare il valore di ogni elemento nella matrice
Posizionare il cursore sulla riga di codice vuota sopra l'istruzione
foreach
.Per dichiarare una nuova variabile che rappresenta la somma di tutti i prodotti completati nel magazzino, immettere il codice seguente:
int sum = 0;
Assicurarsi di dichiarare la variabile all'esterno dell'istruzione
foreach
.Posizionare il cursore all'interno del blocco di codice dell'istruzione
foreach
.Per aggiungere il valore corrente archiviato in
items
alla variabilesum
, immettere il codice seguente:sum += items;
Verificare che il codice corrisponda al seguente:
int[] inventory = { 200, 450, 700, 175, 250 }; int sum = 0; foreach (int items in inventory) { sum += items; }
Visualizzare il valore finale della somma
Creare una riga di codice vuota sotto il blocco di codice dell'istruzione
foreach
.Per segnalare la somma finale di elementi nell'inventario, immettere il codice seguente:
Console.WriteLine($"We have {sum} items in inventory.");
Verificare che il codice corrisponda al seguente:
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.");
Fare clic su Salva nel menu File di Visual Studio Code.
Nel pannello ESPLORA RISORSE per aprire un terminale nel percorso della cartella TestProject, fare clic con il pulsante destro del mouse su TestProject e quindi scegliere Apri nel terminale integrato.
Al prompt dei comandi del terminale digitare dotnet run e quindi premere INVIO.
We have 1775 items in inventory.
Creare una variabile per contenere il numero del contenitore corrente e visualizzare il totale aggiornato
Per soddisfare il requisito finale del progetto di report dell'inventario, sarà necessario creare una variabile che conterrà l'iterazione corrente dell'istruzione foreach
in modo che sia possibile visualizzare il contenitore e il numero di prodotti finiti in tale contenitore, insieme al totale aggiornato di tutti i prodotti dei contenitori conteggiati finora.
Creare una riga di codice vuota sopra l'istruzione
foreach
.Per dichiarare la variabile
int
denominatabin
inizializzata in0
, immettere il codice seguente:int bin = 0;
Si userà
bin
per archiviare il numero del contenitore il cui inventario è attualmente in fase di elaborazione.All'interno del blocco di codice
foreach
, per incrementarebin
ogni volta che viene eseguito il blocco di codice, immettere il codice seguente:bin++;
Si noti che si usa l'operatore
++
per incrementare il valore della variabile di 1. Si tratta di un collegamento perbin = bin + 1
.Per segnalare il numero di contenitore, il numero di prodotti completati nel contenitore e il totale aggiornato dei prodotti completati, immettere il codice seguente all'interno del blocco di codice
foreach
, dopobin++;
:Console.WriteLine($"Bin {bin} = {items} items (Running total: {sum})");
Questo codice userà la variabile contatore
bin
, la variabileforeach
temporaneaitems
e la variabilesum
per segnalare lo stato corrente dell'inventario in un messaggio ben formattato.Verificare che il codice corrisponda al seguente:
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.");
Salvare le modifiche al file Program.cs e quindi eseguire l'applicazione.
Verrà visualizzato l'output seguente:
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.
Riepilogo
Ecco alcuni aspetti da ricordare sulle istruzioni foreach
e sull'incremento dei valori appreso in questa unità:
- Usare l'istruzione
foreach
per eseguire l'iterazione di ogni elemento di una matrice, eseguendo il blocco di codice associato una volta per ogni elemento nella matrice. - L'istruzione
foreach
imposta il valore dell'elemento corrente nella matrice su una variabile temporanea, che è possibile usare nel corpo del blocco di codice. - Usare l'operatore di incremento
++
per aggiungere 1 al valore corrente di una variabile.