La struttura di alternativa
La struttura di alternativa
Per la selezione nel linguaggio C si usa l’istruzione if che ha la sintassi seguente:
if (condizione)
istruzioni-a;
else
istruzioni-b;
Si noti che la condizione è racchiusa tra due parentesi tonde.
Se la condizione è vera, vengono eseguite le istruzioni-a, altrimenti vengono eseguite le istruzioni-b.
ESEMPIO: Scrivere in ordine crescente due numeri
Si tratta di scegliere tra due numeri il minore e di scrivere prima il minore e poi il maggiore.
Programma C
/* Ordina.c : due numeri in ordine crescente */
#include <stdio.h>
main()
{
/* input */
int a, b;
printf(“Due numeri: “);
scanf(“%d %d”,&a, &b);
if (a < b)
{
printf(“%d \n”,a);
printf(“%d \n”,b);
}
else {
printf(“%d \n”,b);
printf(“%d \n”,a);
}
}
Nel caso in cui la condizione a < b sia verificata, devono essere eseguite in sequenza le istruzioni:
printf(“%d \n”,a);
printf(“%d \n”,b);
Pertanto, in accordo con quanto detto nel paragrafo precedente, le due istruzioni sono state raggruppate tra due parentesi graffe.
Analoghe considerazioni vanno fatte per la sequenza:
printf(“%d \n”,b);
printf(“%d \n”,a);
Nel caso in cui dopo la condizione o dopo else ci sia un’unica istruzione, le parentesi graffe possono essere omesse:
if (condizione) istruzione-a;
else istruzione-b;
Se si ha una selezione a una sola via, si omette il ramo else:
if (condizione) istruzione-a;
La condizione è un’espressione booleana di cui viene valutata la verità: vengono quindi utilizzati i segni del confronto: ==, <, >, >=, <=, !=, e gli operatori booleani && (And), || (Or), ! (Not) per costruire espressioni logiche combinando tra loro più condizioni.
Per esempio, nel seguente frammento di programma, la struttura di selezione:
if (classe == 5 && anni > 18) printf(“%s \n”, nome);
produce in output il nome di uno studente, soltanto nel caso in cui si verifichino entrambe le condizioni, perché viene usato l’operatore && (And): frequenta la quinta classe e ha più di 18 anni di età.
Commento all'articolo