Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Istruzione switch
Forum - C/C++ - Istruzione switch

Avatar
matteomitico (Normal User)
Newbie


Messaggi: 3
Iscritto: 11/03/2012

Segnala al moderatore
Postato alle 19:49
Mercoledì, 14/03/2012
sto studiando da autodidatta il c (a scuola sono estremamente lenti), e avrei una domanda sull'utilizzo dell'istruzione switch.. da quanto ho capito servirebbe per evitare migliaia di if, e dovrebbe essere in questo modo:

switch (la variabile di cui si parla):
case (numero digitato dall'utente):
fa freddo: true;
fa caldo: false);
break;

faccio un esempio per farvi capire qual'è il mio problema:

Codice sorgente - presumibilmente C++

  1. int temperatura, caldo, freddo;
  2. switch (temperatura):
  3. case (1):
  4. freddo= true;
  5. caldo= false;
  6. break;
  7. case (40):
  8. freddo= false;
  9. caldo= true;
  10. break;



quindi se digitassi 1 freddo è vera se digito 40 caldo è vera.. ma come faccio a stampare a schermo caldo o freddo?? ho provato con printf ("nella tua citta fa %d", temperatura); ma ovviamente scrive a schermo il numero digitato dall'utente.. come faccio a far scrivere "fa caldo/freddo" in base a cosa ha scelto l'utente??

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:09
Mercoledì, 14/03/2012
if(freddo) printf("freddo");
if(caldo) printf("caldo");


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
matteomitico (Normal User)
Newbie


Messaggi: 3
Iscritto: 11/03/2012

Segnala al moderatore
Postato alle 20:20
Mercoledì, 14/03/2012
provato e tutto apposto, istruzione estremamente utile.. grazie mille :)

PM Quote
Avatar
ale.gatti96 (Member)
Pro


Messaggi: 71
Iscritto: 29/11/2011

Segnala al moderatore
Postato alle 20:53
Mercoledì, 14/03/2012
Attento alle graffe nello switch
Codice sorgente - presumibilmente C/C++

  1. switch ( valore ){
  2.   case k1:
  3.     //Istruzioni
  4.     break;
  5.   case k2:
  6.     //Istruzioni
  7.     break;
  8.   .
  9.   .
  10.   .
  11.   default:
  12.     //Istruzioni
  13.     break;
  14. }



PM Quote
Avatar
Nullable (Normal User)
Expert


Messaggi: 217
Iscritto: 12/07/2011

Segnala al moderatore
Postato alle 21:04
Mercoledì, 14/03/2012
Non solo le parentesi sono importanti ( nel tuo codice hai usato i due punti anziché le graffe ) ma anche la possibilità ( anzi, l'OBBLIGO ) di scegliere/inizializzare il valore della variabile temperatura. E' vero che tramite lo statement switch è possibile verificare il contenuto di una variabile ma è anche vero che se il valore di questa variabile non è definito ( inizializzata, intendo ) o non è scelto dall'utente si verificherà un errore nel programma che deriva dal fatto che il contenuto della variabile non risiede in memoria e quindi l'istruzione switch non può verificarlo.


Hai perso.
PM Quote