Ti trovi qui : C » Guida C: Capitolo 3

Guida C: Capitolo 3



IF,ELSE

Nota: i punti e virgola non sono optional.

Un programma deve spesso assumere un comportamento a seconda dei dati immessi dall’utente. Mettiamoci di fronte al caso seguente: l’utente deve inserire la propria età. Se è maggiorenne potrà bere il vino, altrimenti dovrà bere l’acqua.

#include <stdio.h> #define MAGGIORETA 18

void main()

{

int a;

printf (“inserisci la tua eta’ \n”);

scanf (“%d”, &a);

if (a>=MAGGIORETA)

{ printf (“puoi bere il vino\n”);

}

else {

printf (“bevi l’acqua\n”);

}

}

La struttura dell’if è molto semplice. Fra le parentesi tonde si inseriscono le condizioni (una o più di una). Se queste condizioni sono verificate il programma esegue il codice inserito fra le parentesi graffe, altrimenti salta all’else.

Facciamo un altro esempio: l’utente deve inserire la propria età. Se è maggiorenne e ha meno di 95 anni può rinnovare il permesso di rubare ai ricchi per dare ai poveri, altrimenti non può.

#include <stdio.h>

#define MAGGIORETA 18

int main()

{

int a;

printf (“inserisci la tua eta’ \n”);

scanf (“%d”, &a);

if (a>=MAGGIORETA)

{

if (a<95)

{

printf(“puoi rinnovare il permesso di rubare ai ricchi per dare ai poveri\n”);

}else {

printf (“sei troppo vecchio\n”);}

}

else {

printf(“sei troppo giovane”);

}

}

Come vedete ho utilizzato due if annidati. Poiché una forma del genere può risultare pesante, soprattutto con più di due condizioni, il C viene in aiuto nel seguente modo: if (a>=MAGGIORETA && a<95) Cioè inserendo le due condizioni in un unico if. && va inserito quando si vuole che le condizioni si verifichino entrambe, mentre nel caso si vogliano inserire due condizioni, delle quali è sufficiente che se ne verifichi una, bisogna utilizzare || (che vorrebbe dire ‘o’).

Quindi facendo un esempio: mio papà sara contento se passerò fisica o analisi 2. L’esame passato ha valore 1. La condizione sarà:

if (fisica==1 || analisi2==1) { printf (“mio papà è contento”); }

Ovviamente sarebbe meglio passarli entrambi, ma non è materia di questa guida. VIN (very important nota): se vogliamo mettere una condizione di uguaglianza dobbiamo usare ‘==’. Utilizzare un solo = provocherà un assegnamento, e quindi un grosso errore. if (a=2) diventerebbe una condizione che si verifica in ogni caso, a prescindere dai valori precedenti di a.

Faccio notare che il precedente codice poteva essere scritto:

if (fisica!=0 || analisi2!=0) { printf (“mio papà è contento”); }

!= vuol dire diverso.





lunedì, febbraio 8 2010
Taggato come C,Open source,Programmazione
Scritto da mattiem93







CHI E' L'AUTORE?




Switch to our mobile site