C/Blocchi e funzioni/Blocchi if e switch: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Pietrodn (discussione | contributi)
Nessun oggetto della modifica
Pietrodn (discussione | contributi)
m +sintassi colorata
Riga 16:
 
====Sintassi====
<source lang="c">
 
if (espressione)
istruzione;
</source>
 
oppure, se si desiderano eseguire più istruzioni, le si racchiude in un blocco.
 
<source lang="c">
if (espressione)
if (espressione)
{
{
istruzione1;
istruzione1;
istruzione2;
istruzione2;
istruzioneN;
istruzioneN;
}
}
</source>
 
====Esempi d'uso====
<source lang="c">
 
if ((c+b/7)==45)
{
myvar=14;
printf("c+b/7 è uguale a 45");
}
</source>
 
==={{IndexItem|else}}Blocco if-else===
Line 42 ⟶ 46:
====Sintassi====
 
<source lang="c">
if (condizione)
if (condizione)
{
{
istruzioneDaEseguireSeLaCondizioneÈVera;
istruzioneDaEseguireSeLaCondizioneÈVera;
}
}
else
else
{
{
istruzioneDaEseguireSeLaCondizioneÈFalsa;
istruzioneDaEseguireSeLaCondizioneÈFalsa;
}
}
</source>
 
====Esempi d'uso====
<source lang="c">
 
if ((c+b/7)==45)
{
myvar=14;
printf("c+b/7 è uguale a 45");
}
else
{
myvar=7;
printf("c+b/7 non è uguale a 45");
}
</source>
 
===Blocco if-else if-else===
Line 68 ⟶ 75:
 
====Sintassi====
<source lang="c">
 
if (condizione1)
{
istruzioneDaEseguireSeLaCondizione1ÈVera;
}
else if (condizione2)
{
istruzioneDaEseguireSeLaCondizione2ÈVera;
}
else if (condizioneN)
{
istruzioneDaEseguireSeLaCondizioneNÈVera;
}
else
{
istruzioneDaEseguireSeNessunaDelleCondizioniÈVera;
}
</source>
 
====Esempi d'uso====
<source lang="c">
 
int myvar;
if ((c+b/7)==45)
if ((c+b/7)==45)
{
{
myvar=14;
myvar=14;
printf("c+b/7 è uguale a 45");
printf("c+b/7 è uguale a 45");
}
}
else if ((c+b/7)==47)
else if ((c+b/7)==47)
{
{
myvar=15;
myvar=15;
printf("c+b/7 è uguale a 47");
printf("c+b/7 è uguale a 47");
}
}
else
else
{
{
myvar=0;
myvar=0;
printf("I numeri inseriti non sono validi.");
printf("I numeri inseriti non sono validi.");
}
}
</source>
 
==L'{{IndexItem|operatore ?}}operatore ?==
Il blocco <tt>if-else</tt> può essere sostituito dall'operatore <tt>?</tt>. Per esempio:
 
<source lang="c">
((c+b/7) == 45 ? myvar=14 : myvar=7;
((c+b/7) == 45 ? myvar=14 : myvar=7;
</source>
 
Questo è equivalente al secondo esempio (eccetto per i <tt>printf</tt>).
Line 119 ⟶ 131:
 
====Sintassi====
<source lang="c">
 
switch (variabile)
{
case valore1:
istruzione1;
break;
case valore2:
istruzione2;
break;
case valoreNvalore2:
istruzione2;
istruzioneN;
break;
}
case valoreN:
istruzioneN;
break;
}
</source>
 
====Esempi d'uso====
<source lang="c">
 
switch (myVar)
{
case 1:
printf("myVar è uguale a 1");
break;
case 2:
printf("myVar è uguale a 2");
break;
}
</source>
 
<source lang="c">
switch (myVar)
switch (myVar)
{
{
case 1:
case 21:
case 2:
printf("myVar è uguale a 1 o a 2");
printf("myVar è uguale a 1 o a 2");
break;
case 3:break;
case 3:
printf("myVar è uguale a 3");
printf("myVar è uguale a 3");
// Cade nel caso 4
// Cade nel caso 4
case 4:
case 4:
printf("myVar è uguale a 3 o 4");
printf("myVar è uguale a 3 o 4");
break;
break;
}
}
</source>
 
Dopo l'ultimo caso, l'istruzione "break" è inutile, ma è meglio inserirla ugualmente per evitare errori nel caso si aggiungessero altri casi.
Line 177 ⟶ 192:
 
====Sintassi====
<source lang="c">
 
switch (variabile)
{
case valore1:
istruzione1;
break;
case valore2:
istruzione2;
break;
case valoreNvalore2:
istruzione2;
istruzioneN;
break;
case valoreN:
default:
istruzioneN;
istruzioneAltrimenti;
break;
}
default:
istruzioneAltrimenti;
}
</source>
 
====Esempi d'uso====
<source lang="c">
 
switch (myVar)
{
case 1:
printf("myVar è uguale a 1");
break;
case 2:
printf("myVar è uguale a 2");
break;
default:
printf("Il valore inserito non è valido.");
}
</source>
 
Si potrebbe inserire l'istruzione "break" anche nel caso "default", ma è completamente inutile.