La forma del condizionale in C è
if( COND ) STATEMENT else STATEMENT'
Esiste anche la variante senza parte else, in tal caso se
il valore di COND è uguale a zero nessuna istruzione sarà eseguita.
Se le alternative sono costituite da più istruzioni, allora occorre
racchiuderle tra parentesi graffe; dobbiamo quindi usare il costrutto
blocco.
#include <stdio.h>
#include <math.h>
/*risolve un'equazione di secondo grado di forma a x2 + b x + c = 0
controllando se esistono le soluzioni*/
main()
{
float a, b, c, delta;
printf("Dammi i coefficienti dell'equazione\n");
scanf("%f", &a);
scanf("%f", &b);
scanf("%f", &c);
/*calcolo il delta*/
delta = b*b -(4*a*c);
if (delta < 0 )
printf("l'equazione non ammette soluzioni reali\n");
else{
printf("prima soluzione %f\n", (-b + sqrt(delta)) / (2*a));
printf("seconda soluzione %f\n", (-b - sqrt(delta)) / (2*a));
}
}
In C tale istruzione è detta switch e la sua forma è come segue:
switch( EXPRESSION )
{
case CONSTANT1: STATEMENTS1 break;
....
case CONSTANTn: STATEMENTSn break;
default: STATEMENTS break;
}
#include <stdio.h>
/*trasforma una cifra esadecimale nel corrispondente numero*/
main()
{
char cifra;
int num;
printf("Dare la cifra esadecimale\n");
scanf("%c", &cifra);
switch(cifra){
case '0': num = 0; break;
case '1': num = 1; break;
case '2': num = 2; break;
case '3': num = 3; break;
case '4': num = 4; break;
case '5': num = 5; break;
case '6': num = 6; break;
case '7': num = 7; break;
case '8': num = 8; break;
case '9': num = 9; break;
case 'A': num = 10; break;
case 'B': num = 11; break;
case 'C': num = 12; break;
case 'D': num = 13; break;
case 'E': num = 14; break;
case 'F': num = 15; break;
default: num = -1; break;
};
if(num >= 0)
printf("Il numero corrispondente alla cifra %c e\' %d.\n",cifra,num);
else
printf("Il carattere %c non e\' una cifra esadecimale.\n",cifra);
}