Ne è passato di tempo eh?Ormai sapete che sono un uomo impegnato,come tutti^^
In questa lezione vi insegnerò i cicli!(o anche chiamati "istruzioni di iterazione").
Definizione:
Un'istruzione di iterazione permette la creazione di cicli,al cui interno vengono eseguite le istruzione contenute un n numero di volte.Ma questi cicli sono determinati da delle condizioni e dalla possibile presenza di istruzioni di spostamento(ve li mostrerò dopo).
N.B. I cicli vengono formalmente usati per scorrere i dati contenuti nelle matrici o per una semplice sequenza(per le matrici for o foreach).
Indice:
- For;
While;
Do;
Foreach.
Let's go:
For:
Questa keyword esegue ripetutamente un n numero di istruzioni finchè non restituirà false.
for ( int i =1; i <= 5; i++)
{
Console.WriteLine(i); //vi ricordate ancora di queste istruzioni?XD
}
Analizziamo la sintassi (:
for: la keyword che richiama l'istruzione;
int i = 1: inizializzo e dichiaro una variabile di tipo int;
i <= 5 : pongo la condizione che i sia minore-uguale a 5;
i++ : incremento i di 1(questo avviene alla fine di ogni ciclo);
Vi starete chiedendo come lavori for e vi posso comprendere che all'inizio vi sentiate dispersi,ma no problem!Usando,come sempre,la logica vi illustrerò tutto per bene:
For ha bisogno,non necessariamente, di tre condizioni :
1-Dichiarare e inizializzare una variabile che farà da contatore;
2-Porre la condizione per l'intero ciclo(io ho posto i < 5 in modo che il ciclo venga eseguito finchè questa condizione sia vera.Quando i sarà maggiore di 5,il ciclo terminerà.)
3-Incrementare il nostro contatore;
Tutto chiaro ora? (:
Per chi fosse interessato l'output di quel ciclo è :
1 2 3 4 5
N.B. Il test della condizione avviene prima dell'esecuzione del ciclo(diversamente dal ciclo do,lo vedremo dopo).
Inoltre è possibile non scrivere alcun parametro per il ciclo for:
for ( ; ;)
{
//blocco di istruzione
//Attenzione!Questo ciclo verrà eseguito all'infinito!!A meno che non inseriate un'istruzione di spostamento o il programma si "freezerà",con eventuale crash
}
While:
Simile all'istruzione for,ma varia per i parametri:
int i = 1;
while ( i < 5)
{
Console.WriteLine(i);
i ++
}
Come potete osservare i parametri sono divisi:
-Il contatore viene dichiarato e inizializzato al di fuori del ciclo;
-La condizione rimane come argomento dell'istruzione;
-L'incremento avviene alla fine del ciclo;
ma volendo avremmo potuto scriverlo così(con differente output ):
int i = 1;
while ( i++ < 5)
{
Console.WriteLine(i);
}
Infatti i due output sarebbero questi :
Output #1: 1 2 3 4 Output #2 2 3 4 5
N.B. In tutti i cicli valgono le stesse regole più o meno.
Do:
Anche questo ciclo è simile agli altri descritti,ma,come vi ho già accennato,il test della condizione avviene dopo l'esecuzione del ciclo,quindi il ciclo dev'essere eseguito almeno una volta.
Andiamo ad analizzare la sua sintassi(simile a quella di while (: ) :
int i = 0;
do
{
Console.WriteLine(i);
i++;
} while (i < 5);
Output 0 1 2 3 4
Come potete osservare la condizione è posta alla fine del ciclo (:
Foreach:
Questa istruzione ripete un blocco di istruzioni,i quali elementi facciano parte di una matrice o di un insieme di oggetti che implementi l'interfaccia IEnumerable.
Dopo questa premessa importante,passiamo alla sintassi!
int[] numbers = new int[] {1,5,9,12,19,20}
foreach( int i in numbers)
{
Console.WriteLine(i);
}
Come potete vedere ho inizializzato una matrice al di fuori del ciclo(credo abbiate capito il motivo) e dopo di che ho fatto "scorrere" tale matrice all'interno dell'istruzione foreach.Quest ultimo richiede un contatore che sia dichiarato nei parametri.
Se provassimo a "tradurre" tale istruzione avremmo :
Per ogni(foreach) elemento di tipo int (int i) che si trovi all'interno(in) della matrice(numbers),fai questo(Console.WriteLine(i);).
Vi andrà a stampare gli elementi contenuti nella matrice,in breve (:
N.B. L'istruzione foreach non viene usata per aggiungere o rimuovere elementi,per questo si usa for.
Ta-dan!:
Vi ho descritto tutti i cicli!Contenti?Ma non è finita qui!Infatti ci sarebbe altre cose di cui trattare(istruzione di spostamento e analizzare al meglio lo scorrere delle matrici).
Ma questo ve lo mostrerò nella prossima parte o la lezione sarebbe troppo lunga e noiosa <.<.
Detto questo,mi scuso per la solita lunghezza esagerata e vi auguro un buon Natale!(E si nemmeno stavolta compiti,perchè mi aspetto da voi che vi stiate esercitando,ma con la prossima lezione ve ne assegnerò tipo una o due valanghe :P )
Enjoy it!












