Oppure

Loading
14/03/12 18:49
matteomitico
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:

int temperatura, caldo, freddo;
switch (temperatura):
case (1):
freddo= true;
caldo= false;
break;
case (40):
freddo= false;
caldo= true;
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??
aaa
14/03/12 19:09
nessuno
if(freddo) printf("freddo";);
if(caldo) printf("caldo";);
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
14/03/12 19:20
matteomitico
provato e tutto apposto, istruzione estremamente utile.. grazie mille :)
aaa
14/03/12 19:53
ale.gatti96
Attento alle graffe nello switch
switch ( valore ){
  case k1:
    //Istruzioni
    break;
  case k2:
    //Istruzioni
    break;
  .
  .
  .
  default:
    //Istruzioni
    break;
}
aaa
14/03/12 20:04
Nullable
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.
aaa