[C] – Istruzioni, blocchi, if-else, else-if, switch
In C, così come in ogni altro linguaggio, dobbiamo seguire delle regolette di sintassi quando scriviamo il codice, altrimenti sarebbe oggettivamente impossibile comunicare al nostro programma cosa vogliamo da lui.
Nello scrivere un espressione, dobbiamo ricordarci di mettere il ; in fondo, in modo da trasformarla in un istruzione. In questo modo,
x = 0;
Per creare un blocco (o istruzione composta) dobbiamo invece raggruppare dichiarazioni ed istruzioni all’interno di parentesi graffe { }. Il contenuto di due parentesi graffe viene letto come una singola istruzione, come un blocco unico. Ad esempio:
{ x = 0;
y = 1;}
Importante, alla fine di un blocco, con relativa graffa } non serve mettere un punto e virgola (facendo un confronto, basti notare che non serve mettere il ; neanche alla fine di un elenco di istruzioni in un CSS, prima della graffa)
L’istruzione if-else ci permette di porre una condizione (if) al verificarsi della quale avremo un determinato comportamento,oppure (else) avremo un comportamento diverso. Di seguito il costrutto base:
if (espressione) istruzione1 else istruzione2
Se il valore di espressione è diverso da zero, il programma eseguirà l’istruzione1, altrimenti l’istruzione2.
E’ importante ricordare, i compilatori abbinano else al più vicino if che non ne ha già uno assegnato.
Nel caso di istruzioni nidificate, come queste:
if quelchevuoi1 if quelchevuoi2 else
il compilatore assegnerà else a quelchevuoi2. E se invece volessimo assegnarlo a quelchevuoi1? dobbiamo utilizzare le parentesi graffe, così:
if (espressione) {
if quelchevuoi2
}
else
Il costrutto else-if complica un po’ le cose, dato che aumenta le variabili in gioco e le relative istruzioni. Nonostante ciò è estremamente intuitivo e facile da realizzare, guardiamolo insieme:
if (espressione1) istruzione1 else if (espressione2) istruzione2 else if (espressione3) istruzione3 else istruzione4
E così via, si potrebbe continuare mettendo un infinità di else-if, ma per l’esempio attuale bastano ed avanzano questi. La traduzione è la seguente:
se espressione1 è vera esegui l’istruzione1, altrimenti, se l’espressione2 è vera esegui istruzione2, altrimenti se espressione3 è vera esegui espressione 3, oppure, se nessuna delle precedenti espressioni è vera, esegui istruzione4.
L’istruzione switch ragiona in modo simile, ma ha alcune differenze, ad esempio, il seguente costrutto
switch (espressione) {
case x1
istruzione x1
break
case x2
istruzione x2
break
case x3
istruzione x3
break
default
istruzione x4
break
}
significa:
Valuta l’espressione, se è uguale al caso x1 esegui istruzione x1, altrimenti passa a caso successivo (break) e valuta il caso x2, nel caso in cui coincida esegui l’istruzione x2, altrimenti passa al caso x3, se coincide esegui l’istruzione x3. Nel caso in cui nessuna di queste istruzioni coincidano esegui l’istruzione x4 contenuta nel default quindi esci dal costrutto switch.
Questo costrutto è detto a cascata perché ogni volta che finisce di eseguire il codice relativo ad un caso, passa al caso successivo.
E anche per oggi è andata, di questo passo fra solo 2.134.234 giorni circa, avremo finito


![[C] - Istruzioni, blocchi, if-else, else-if, switch [C] - Istruzioni, blocchi, if-else, else-if, switch](http://blogger.m3c.it/wp-includes/images/crystal/default.png)





Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /web/htdocs/blogger.m3c.it/home/wp-content/plugins/wikiovote.php on line 40
Warning: file_get_contents(http://web.wikio.it/getnote?u=909de04b83eb3a7843d0892e56831a92&i=38.107.191.111&referer=909de04b83eb3a7843d0892e56831a92) [function.file-get-contents]: failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /web/htdocs/blogger.m3c.it/home/wp-content/plugins/wikiovote.php on line 40
Iscriviti ai Feed RSS 2.0 di quest'articolo.