Salut,
Le switch demande des constantes dans ses "cases" car il est construit à la compilation et n'est pas dynamique.
De plus ton code essaye de renvoyer un booleen à chaque case, ce qui n'est pas admis.
Logiquement, Il suffirait de faire un if, else.
Mais tu peux créer des MACROs simulant le switch :
#define SWITCH(constVal, PTRres) { \
const int _switchVal = constVal; \
int* _switchvarAffect = PTRres; \
if(false) *_switchvarAffect=0;
#define CASE(val,min,max) \
else if(_switchVal>=min && _switchVal<=max) \
*_switchvarAffect = val;
#define DEFAULT(def) \
if(*_switchvarAffect==0) \
*_switchvarAffect = def;}
Que tu utiliserait comme ceci :
int value = 0;
int rand_value = arc4random() % 101;
SWITCH(rand_value, &value)
CASE(50,-9999,45)
CASE(100,46,70)
CASE(250,71,85)
DEFAULT(0);
// Ici value contient la bonne valeur
bye...