C#. NET – Times Table
In questa nuova lezione andremo ad analizzare nello specifico i passi di esecuzione del ciclo for relativo al precedente esercizio utilizzando una time tables.
Utilizzeremo delle textbox tramite le quali l’utente potrà inserire il numero di partenza ed il numero finale e grazie ad una listBox – tabella di riepilogo, visualizzeremo i valori delle variabili per ogni passo di esecuzione.


Fate doppio click sul bottone For Loops ed inserite il seguente codice:
for (int i = LoopStart; i < LoopEnd; i + +)
{
answer = risposta + i;
listBox1.Items.Add (answer.ToString ());
}
Come si può facilmente intuire tramite il comando listBox1.Items.Add possiamo aggiungere elementi da visualizzare nella nostra listBox.
Ora avviate il programma ed inserite come numero iniziale 1 come finale 5, dopodiché cliccate sul bottone Loop For.

Il programma dovrebbe sommare fra di loro i numeri da 1 a 5 e visualizzare il valore della variabile anwer per ogni passo di esecuzione del ciclo, tuttavia i passi visualizzati sono 4 anziché 5 e il risultato finale é 10 anziché 15.
Il motivo di questo errore va ricercato nella seconda parte del ciclo For:
for (int i = LoopStart; i<LoopEnd ; i + +)
Nel nostro caso il ciclo For viene eseguito fin quando la variabile i è minore di LoopEnd e quindi proprio quest’ultimo valore non viene sommato alla variabile answer.
Per risolvere questo problema basta modificare la condizione di fine ciclo: i<=LoopEnd.
Per aggiungere qualche informazione in più nella vostra casella di riepilogo, modificate la riga relativa all’ inserimento nella listBox: listBox1.Items.Add( “answer = ” + answer.ToString( ) );
Avviate nuovamente il programma e noterete che questa volta sia il numero di passi di esecuzione che i risultato finale sono cambiati:

Per rendere ancora più chiara la listBox modificate nuovamente la riga relativa all’inserimento:
listBox1.Items.Add ( “i =” + i + “risposta =” + answer.ToString ());

Cliccando ripetutamente sul bottone For Loop vi accorgerete che gli elementi che erano visualizzati in precedenza della listBox non vengono in automatico cancellati, per ovviare questo problema possiamo utilizzare il comando listBox1.Items. Clear () ;
Nella prossima lezione vederemo come utilizzare le altre due tipologie di cicli, do… while e il while…..