if executar només si es compleix una condició
Sintaxi
if (condició) {
// s'executa només si condició és certa
}
Exemple
int nota = 7;
if (nota >= 5) {
printf("Aprovat\n");
}
Si nota >= 5 és certa, s'executa el cos. Si és falsa, simplement es continua després del bloc, sense fer res.
else l'alternativa
Exemple
int nota = 3;
if (nota >= 5) {
printf("Aprovat\n");
} else {
printf("Suspès\n");
}
El bloc else s'executa exactament quan la condició de l'if és falsa. Sempre s'executa un dels dos blocs, mai els dos.
else if encadenar diverses condicions
Exemple
int nota = 6;
if (nota >= 9) {
printf("Excel·lent\n");
} else if (nota >= 7) {
printf("Notable\n");
} else if (nota >= 5) {
printf("Aprovat\n");
} else {
printf("Suspès\n");
}
Es comproven les condicions en ordre, d'una en una. En el moment que una és certa, s'executa el seu bloc i ja no es comprova cap més condició de la cadena.
switch triar entre valors concrets
Quan cal comparar una mateixa variable amb molts valors possibles, un switch és més clar que una cadena llarga d'else if.
Sintaxi
switch (variable) {
case valor1:
// ...
break;
case valor2:
// ...
break;
default:
// si no coincideix amb cap cas
}
Exemple
int dia = 3;
switch (dia) {
case 1:
printf("Dilluns\n");
break;
case 2:
printf("Dimarts\n");
break;
case 3:
printf("Dimecres\n");
break;
default:
printf("Dia no vàlid\n");
}
El default és opcional i s'executa quan cap case coincideix.
Compte amb oblidar el break!
Si un case no acaba amb break, l'execució continua cap al case següent encara que no hi torni a haver cap comprovació — es diu fall-through, i sol ser un error involuntari.
int x = 1;
switch (x) {
case 1:
printf("u\n");
// falta el break!
case 2:
printf("dos\n");
break;
}
// imprimeix "u" I "dos", encara que x només val 1
?: operador ternari
Una forma compacta d'escriure un if-else que retorna un valor, útil quan només vols triar entre dues expressions.
Sintaxi
condició ? valor_si_certa : valor_si_falsa
Exemple
int a = 5;
int b = 8;
int max = (a > b) ? a : b;
printf("%d\n", max);
Equival a: si a > b, max val a; si no, val b. Aquí a > b és fals, així que max val 8.
Mira quin camí pren el programa
Tria una variant i avança pas a pas per veure quina condició es compleix i quin bloc s'acaba executant.
Codi
Variables
| Nom | Valor |
|---|
Terminal
Exercicis d'autoavaluació
Cada exercici es genera amb valors nous a l'atzar. Llegeix el codi, pensa quina serà la sortida per terminal i comprova-ho.
Quina serà la sortida per terminal d'aquest programa?