
.:PARTE 4 - CICLI ITERATIVI, ECC. :.
INTRODUZIONE
------------
Devo dire bel titolo... Creatività 0! Vabbè, cmq oggi ci dedicheremo a cose che forse avrei dovuto fare prima, ma che, per
una cosa o per l'altra, non abbiamo fatto come si deve (anche se cmq le abbiamo viste). Mi riferisci ai cicli iterativi (do,
while, for) e alle if. Non perdiamoci in chiacchiere e cominciamo il nostro lavoro!!
COME FUNZIONA LA IF
-------------------
La if è la struttura iterativa più semplice che possa esistere. Il suo funzionamento logico è abbastanza banale e si riduce
ad un: SE SUCCEDE QUESTO FACCIO QUELLO , ALTRIMENTI FACCIO ALTRO O NON FACCIO NULLA. Praticamente è come se il programma
ad un certo punto si trovasse ad un bivio, e a seconda delle situazioni (che in linea di massima sono valori di variabili,
e cose di questo genere) sceglie la strada... Facciamo un piccolo esempio:
if(scelta==1)
{
b=a*2;
}
else
{
b=a/2;
}
Riuscite ad indovinare cosa fa questo frammento di codice? Altro non fa che controllare il valore della variabile scelta,
se questo valore è pari ad 1, calcola il doppio di a e lo mette in b. Se invece scelta non è pari a 1, calcola la metà di a
e la mette in b. Direi abbastanza semplice, no?? OK... Passiamo ad altro!
LA FOR
------
La for è un'istruzione iterativa comunemente usata. Anche questa è semplice e viene usata per compiere N volte un determinato
frammento di codice. Prima di tutto analizziamo la configurazione della FOR:
for(i=0;i<10;i++)
{
// CODICE DA ESEGUIRE
}
Questa è la forma base della for, vediamo a cosa corrispondono tutti i suoi argomenti:
for (i=0; i<10; i++)
| | |
v v v
Questa è la Questa è la Quì specifichiamo
condizione di condizione di di quanto deve
partenza. uscita dalla essere incrementata
Ovvero diciamo for. Finchè o decrementata la
che all'inizio i sarà < di 10 variabile che stiamo
la i deve aver il ciclo verrà usando. In questo caso
valore 0. eseguito. i viene incrementato
Dopodichè si di 1 ad ogni ciclo
uscirà dal (infatti avremmo potuto
ciclo. scrivere anche i=i+1 che
è la stessa cosa di i++)
Capito tutto?? Dai non è così difficile! Se avete capito mi saprete dire, nell'esempio di sopra, quante volte verrà ripetuto
il ciclo!! Pensateci un po... MMm,,, quanto avete detto ?? 10 volte? Bravi! Avete capito allora! Infatti il CODICE DA
ESEGUIRE verrà ripetuto 10 volte perchè i partirà da 0 e si fermerà arrivato a 10 (escluso), e come sappiamo, ad ogni ciclo
i viene incrementato di 1! E anche la for è andata... :D
ORA C'E' LA WHILE
-----------------
La while, verosimilmente, ha un funzionamento simile alla for, soltanto che non è così "automatizzata", ora vedremo il
perchè! Esempiuccio:
while(i<10)
{
// CODICE DA ESEGUIRE
}
Questa è la forma sintattica di una while. Come vedete c'è solo la condizione, il codice da eseguire verrà ripetuto finchè
la condizione della while (ovvero i<10) sarà VERA. Per non fare andare in un loop infinito la while bisognerà stare attenti
ad alcune cose. Per loop infinito intendo che il codice da eseguire viene eseguito in maniera infinita, ovvero che quella
condizione sarà sempre vera. Come potrebbe succedere? Beh mettiamo che i prima di entrare nella while valga 5, e che dentro
il CODICE DA ESEGUIRE io non incrementi mai i. Beh cosa succederebbe? la condizione sarebbe sempre vera, quindi non si
uscirebbe mai dal ciclo... Queste sono le classiche cose da EVITARE :) Per un buon funzionamento di quella While, in modo
che funzioni come la for di sopra, dovremmo fare i seguenti ritocchi:
...
i=0;
...
while(i<10)
{
// CODICE DA ESEGUIRE
i++;
}
Avete capito tutti il perchè , giusto? :) A prima vista, ora la while potrebbe sembrare inutile avendo capito l'uso della
for, ma non è così!! Se continuerete a programmare vi accorgerete che la while vi tornerà utile parecchie volte!! E ora
passiamo all'ultima, che poi ultima non è, ma di quelle che prendiamo in considerazione è propio ultima, ovvero:
E' IL TURNO DELLA DO WHILE
--------------------------
La do while funziona come la while, anche se c'è una piccola grande differenza... Prima di tutto analizziamo la sintassi:
do
{
//CODICE DA ESEGUIRE
} while(i<10);
Riuscite a capire dov'è la differenza? Beh l'unica differenza è che quì il controllo viene fatto in coda! Cosa significa?
Che se prima (nella while) i era già >=10 il codice all'interno della while non veniva eseguito neanche una volta perchè
la condizione veniva verificata ancor prima di entrare nel ciclo. In questo caso invece, anche se i è >=10 il ciclo viene
comunque eseguito almeno una volta perchè l'istruzione di controllo è alla fine del ciclo. Quindi, ricapitolando, la while
ha il controllo in TESTA mentre la do-while lo ha in CODA... E dovreste averne capito il perchè! Per il resto, come già detto
la do-while ha lo stesso funzionamento della while...
CONCLUSIONI
-----------
Beh anche per oggi abbiamo finito... Dalla prossima volta credo che potremmo iniziare a fare qualche programmino un po +
evoluto, visto che ora ci sono QUASI tutte le basi per poterlo fare!! L'unico consiglio che vi posso dare è di non
fermarvi ai miei tutorial, di continuare a programmare, smanettare, cercare per la rete! Detto questo detto tutto, ci si
sente al prossimo tutorial!!
Bai Bai
|