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++ - switch con float
Forum - C/C++ - switch con float

Avatar
andry89mm (Member)
Pro


Messaggi: 128
Iscritto: 21/12/2006

Segnala al moderatore
Postato alle 12:52
Lunedì, 19/02/2007
Ciao ragazzi, il mio problema è il seguente:  devo sostituire una serie di 'if then else' in cascata con un più comodo 'case of' ( switch ).
Fino ad oggi non mi era mai capitato di dover 'casare' una variabile di tipo folat, ma ora che mi si presenta il problema mi è venuto il dubbio che cio non si possa fare..Ho provato a definire i valori che  questa variabile può prendere ( es.: #define UNO_CINQUE 1,5   #define DUE_ZERO 2,0 ecc..)
Ma anche in questo modo mi si presenta un errore nella compilazione;
" switch quantity not a integer"
Qualcuno sa suggerirmi una strada alternativa per aggirare questo problema(se può essere aggirato..)?
Grazie.. ;)

PM Quote
Avatar
kikkoHack (Normal User)
Newbie


Messaggi: 6
Iscritto: 18/02/2007

Segnala al moderatore
Postato alle 14:31
Lunedì, 19/02/2007
Allora vediamo se ho ben capito....
Il costrutto switch-case si presenta così:

Codice sorgente - presumibilmente C++

  1. switch (espressione)
  2. { case costante1:
  3.        istruzione
  4.        .....
  5.  case costante2:
  6.        istruzione
  7.        .....
  8.  case costante3:
  9.        istruzione
  10.        .....
  11.  default:
  12.        istruzione
  13.        .....
  14. }



Ora il discorso è questo: il valore di espressione, racchiusa tra parentesi tonde, deve essere di tipo int o char...per questo anche le varie costanti dovranno essere di tipo int o char.

:)  :)  

Spero di non sbagliarmi..cmq vedo se riesco a trovare un alternativa ( a patto che ci sia :asd: )

Ciao^^

Ultima modifica effettuata da kikkoHack il 19/02/2007 alle 14:49
PM Quote
Avatar
Reese (Ex-Member)
Pro


Messaggi: 179
Iscritto: 09/08/2006

Segnala al moderatore
Postato alle 14:41
Lunedì, 19/02/2007
Non puoi usarlo correttamente con i float.


Dr. Wilson: You're - you're trying to objectively measure how much I value our friendship?
Dr. Gregory House: That's five grand, you've got nothing to be ashamed of. So what do you say, one little phone call, one big check?
PM Quote
Avatar
andry89mm (Member)
Pro


Messaggi: 128
Iscritto: 21/12/2006

Segnala al moderatore
Postato alle 16:11
Lunedì, 19/02/2007
Ecco...volevo appunto una conferma..Anche perchè in effetti con a virgola sorgerebbe il problema della precisione( numero di cifre dopo la virgola..)

Quindi è deciso: switch solo per char o int e naturalmente long..:k:

PM Quote
Avatar
Reese (Ex-Member)
Pro


Messaggi: 179
Iscritto: 09/08/2006

Segnala al moderatore
Postato alle 18:49
Giovedì, 22/02/2007
Già, solo tipi discreti. (anche il bool)


Dr. Wilson: You're - you're trying to objectively measure how much I value our friendship?
Dr. Gregory House: That's five grand, you've got nothing to be ashamed of. So what do you say, one little phone call, one big check?
PM Quote