A recipe of: c basics ( I cicli while, do while, for )

Nello scorso tutorial, vi avevo lasciato un’esempio nel quale andavo a utilizzare dei cicli for.
In questo nuovo tutorial, andremo a capire cosa sono questi cicli e come possiamo utilizzarli.

 

Ingredienti:

 

Che cosa e’ un ciclo?

I cicli in programmazione, rappresentano il ripetersi di un’evento o una serie di eventi da noi specificati fino a un dato momento sempre da noi specificato.

Possiamo pensarli come una cosa del genere :

Creazione del ciclo, Controllo della condizione del ciclo(vera) -> Esecuzione degli eventi interni al ciclo -> Controllo della condizione del ciclo(falsa) -> Uscita dal ciclo.

Solitamente, all’interno dell’esecuzione degli eventi interni al ciclo, troveremo una qualche variabile, che andra’ prima o poi a rendere la condizione del ciclo falsa, e quindi di darci la possibilita’ di uscire dal ciclo senza rimanere bloccati al suo interno.

 

Il ciclo While

In c, solitamente anche in molti altri diversi linguaggi di programmazione,  possiamo trovare quanto schematizzato li sopra, nel while (in italiano per l”appunto ciclo).

Il while ci si presenta cosi,

while(condizione){ istruzioni interne al while }

E possiamo leggerlo nel seguente modo: while(finche’) questa condizione e’ vera, esegui le istruzioni interne al while.

Ora, vi faccio un’esempio pratico di utilizzo, mettiamo che volessi stampare a schermo la tabellina del 2, allora in codice dovrei scrivere:
#include <stdio.h>

int main()
{
int a,i;
i=0;
printf("\n\n");
while(i<=10){
a = 2;
a *= i;
i++;
printf("%d - ",a);
}
return 0;
}

In questo caso, l’espressione while, possiamo leggerla in questo modo: Finche, la i e’ minore uguale al valore 10, assegna alla variabile a il valore due, assegna ad a il risultato del’operazione “a*i”, incrementa i di un’unita’, stampa a, ricontrolla la condizione.

Quindi, avremo che a ogni ciclo, il valore della nostra i si aumentera’ di una unita’, e quando sara’ arrivata ad avere un valore superiore al 10, riusciremo ad uscire dal ciclo e andremo a eseguire “return 0” andando a chiudere il programma.

Questo e’ l’output di quel programma:

base2

 

Il ciclo Do While

Molto simile al ciclo while ma al posto di leggerlo “finche questa condizione e’ vera, fai questo”, lo andremo a leggere come “fai questo finche questa condizione e’ vera”, questo ci assicurera’ di eseguire le istruzioni interne al ciclo almeno una volta.

La sua struttura e’ questa:  do{ istruzioni interne } while ( condizione ).

Quindi, ripeto, si leggera’: fai(do) queste istruzioni interne finche'(while) questa condizione e’ vera.

Possiamo riscrivere lo stesso programma di prima, in questo modo:
#include <stdio.h>

int main()
{
int a,i;
i=0;
printf("\n\n");
do{
a = 2;
a *= i;
i++;
printf("%d - ",a);
}while(i<=10);

return 0;
}

E andremo a ottenere esattamente lo stesso output.

 

Il ciclo for

Solitamente anche se lascia meno liberta, questo ciclo risulta essere il piu’ usato, ed e’ sicuramente il piu’ ordinato tra i tre.

La sua struttura si presenta in questo modo for( assegnazione variabile; condizione di ciclo; evoluzione variabile ){ istruzioni interne al ciclo }

Dove andiamo a spostare tutte le stringhe riguardanti la variabile associata alla condizione del ciclo, all’interno dei parametri del for in questo modo: for( int i = 0; i < 10; i++)

Il primo parametro, l inizializzazione della variabile per la condizione con il suo settaggio al valore 0, verra’ eseguita soltanto una volta, mentre il controllo della condizione( se vera o falsa ) e in questo caso l’incremento della variabile i, verranno eseguiti all’inizio di ogni ciclo.

Andiamo nuovamente a riscrivere il programma della tabellina del 2:
#include <stdio.h>

int main()
{
int a;
printf("\n\n");

for(int i = 0; i <= 10;i++){
a = 2;
a *= i;
printf("%d - ",a);
}

return 0;
}

Come vedete, andiamo a risparmiarci un po’ di righe di codice, riuscendo a rendere tutto piu’ bello visivamente e leggibile.

Nel prossimo tutorial parleremo meglio delle condizioni.

 

 

 

Saluti dal vostro nabbo Developer

Marco Tamagno

Facebook

Google+

Rispondi