Home/post/C - if else
Andrea Falla

Andrea Falla

1

04 Apr, 2022

C - if else

C - if else

Se abbiamo bisogno di scegliere che blocco di codice eseguire tra due possibili, significa che c'è necessità di un costrutto che implementi una fase di selezione binaria all'interno del nostro sorgente. Detto ciò, if else è esattamente ciò che serve per effettuare questo genere di selezione, poiché fonda il suo funzionamento sulla verifica di una condizione inserita tra due parentesi tonde, che può risultare vera (true) o falsa (false), indipendentemente dal fatto che sia un controllo su una variabile o su un'espressione logico-matematica.

Funzionamento

Non è difficile da applicare, tant'è che si costruisce come di seguito:

1
if (condizione) {
2
istruzione_principale;
3
} else {
4
istruzione_alternativa;
5
}

Se condizione risultasse vera, verrebbe eseguita istruzione_principale, altrimenti verrebbe eseguita istruzione_alternativa.

Un esempio sta nel confronto di due variabili:

1
void main() {
2
int x, y;
3
4
printf("Inserisci x: ");
5
scanf("%d", &x);
6
printf("Inserisci y: ");
7
scanf("%d", &y);
8
9
// controllo se x è maggiore di y
10
if (x > y) {
11
// se è vero...
12
printf("x è maggiore di y.\n");
13
} else {
14
// altrimenti...
15
printf("x NON è maggiore di y.\n");
16
}
17
}

else if

Ciò che ci permette di valutare una nuova condizione, data la risposta negativa della precedente, è l'else if, il cui funzionamento è quello di un semplice if:

1
void main() {
2
int x, y;
3
4
printf("Inserisci x: ");
5
scanf("%d", &x);
6
printf("Inserisci y: ");
7
scanf("%d", &y);
8
9
// controllo se x è maggiore di y
10
if (x > y) {
11
// se è vero...
12
printf("x è maggiore di y.\n");
13
} else if (x == y) {
14
// altrimenti, se fossero uguali...
15
printf("x e y sono uguali.\n");
16
} else {
17
// altrimenti...
18
printf("y è maggiore di x.\n");
19
}
20
}

Operatori logici

Per eseguire controlli più complessi, ovvero controllare più condizioni allo stesso tempo, è possibile utilizzare gli operatori logici AND, OR e NOT:

1
void main() {
2
int x, y;
3
4
printf("Inserisci x: ");
5
scanf("%d", &x);
6
printf("Inserisci y: ");
7
scanf("%d", &y);
8
9
// controllo se x e y sono entrambi maggiori di 0
10
if (x > 0 && y > 0) {
11
// se vero...
12
printf("x e y sono positivi.\n");
13
} else {
14
// altrimenti ...
15
printf("x e y NON sono positivi.\n");
16
}
17
}

Per chiudere, l'if else è alla base degli algoritmi che comprendono una fase di selezione binaria, ma come abbiamo visto ha potenzialità ben più grandi: tutto sta nella buona gestione delle condizioni che forniamo.

Andrea Falla

Andrea Falla

Sono uno studente delle superiori. Ho approcciato l'informatica con la scuola, mentre la scrittura è una passione nata con il tempo.

Lascia un commento