c++ int instruction switch
je travaille sur un interrupteur pour les entiers pour la dernière heure et demi maintenant, je sais comment le faire basculer avec char, mais cela semble bien difficile pour moi.tous les conseils seront appréciés.le problème que j'ai c'est que je ne peux pas accepter notes sur 100, ce qui ce commutateur n'est actuellement
int testScore;
cout <<"Enter your test score and I will tell you \n";
cout <<"the letter grade you earned ";
cin >> testScore;
switch(testScore/10)
{
case 10:
case 9:
cout <<"Your grade is A.\n";
break;
case 8:
cout <<"Your grade is B.\n";
break;
case 7:
cout <<"Your grade is C.\n";
break;
case 6:
cout << "Your grade is D.\n";
break;
case 5:
cout << "Your grade is F.\n";
break;
default:
cout << "That score isn’t valid\n";
}
Un interrupteur sur un float ne devrait même pas compiler donc, je ne suis pas sûr de savoir comment il est en mesure d'accepter les scores de plus de 100.
Si vous avez besoin de vérifier pour plages de valeurs, un commutateur est généralement le mauvais outil pour le travail. Qu'attendez-vous pour arriver avec une entrée de "90"?
Un score de 110 entraînera une
Si vous avez besoin de vérifier pour plages de valeurs, un commutateur est généralement le mauvais outil pour le travail. Qu'attendez-vous pour arriver avec une entrée de "90"?
Un score de 110 entraînera une
case
valeur de 11 dont vous n'avez pas comptabilisés, à l'exception de la default
cas.OriginalL'auteur Jose Meza | 2014-02-25
Vous devez vous connecter pour publier un commentaire.
Vous êtes en divisant par 10.0, qui est un double et ce ne sera pas compilée. Cela doit être changé à 10.
Aussi, vous devez faire précéder l'instruction switch avec une instruction if qui vérifie si c'est dans une plage valide.
Cela devrait être un commentaire, cela ne répond pas à la question.
En C++ (et beaucoup d'autres langues), en divisant le nombre entier
109
par l'entier10
retourne10
, qui déclenchera la premièrecase
. Si vous ne voulez pas les gens à entrer des chiffres plus grands que100
, vous aurez besoin de faire valoir ce que de quelque part. Par exemple, entre la ligne que vous utilisezcin
et laswitch
déclaration.Juste assez. En réponse à la question de savoir si, vous pouvez avoir une instruction if si (testScore<=100 && testScore>=0), qui exécute l'instruction switch si vrai et sorties de Test de Partition non valide si la valeur est false
Vous devriez vous mettre dans votre réponse.
OriginalL'auteur Borat.sagdiyev
Vous devriez vraiment le faire avec des "si", pas un "switch". Quelque chose comme le code suivant (pas testé):
OriginalL'auteur Chris
j'ai juste décidé de faire de cette façon, merci pour toutes vos réponses,
OriginalL'auteur Jose Meza