0
votes

Comment utiliser l'instruction de commutation dans une méthode de telle sorte que la méthode puisse renvoyer une valeur de caractère acquise par la déclaration de commutation à l'intérieur?

Cette méthode est supposée calculer la moyenne des scores obtenus et renvoyer la note en conséquence. Comment puis-je passer la note du commutateur () au calcul () de sorte qu'il puisse renvoyer la bonne note? XXX

Je sais comment le faire sans commutateur (), mais je pense que pourrait être fait de cette façon aussi. plz dis-moi ce que je manque?


2 commentaires

Si vous faites correspondre le cas (1) lors de la commutation sur grade , alors grade == 1 , donc ce n'est pas > = 90 . Je pense que vous obtenez un peu confus.


Retour simple de la valeur nominale là-bas - Peu importe quoi - juste pour faire taire le compilateur. (Le compilateur ne détecte pas, que la ligne est inaccessible)


4 Réponses :


0
votes

Depuis que vous avez couvert tous les cas avec la déclaration de commutation et que vous retournez immédiatement pour chacun d'eux, vous ne devriez rien y arriver, vous n'atteindrez jamais cette partie du code. Dans le code que vous avez actuellement l'instruction est également inutile car il ne sera jamais atteint dans aucun des cas, car une fois de plus, il est anticipé par une déclaration de retour.

Vous pouvez modifier votre code un peu si vous souhaitez renvoyer la valeur une fois à la fin en stockant le résultat du boîtier de commutation dans une variable définie précédemment et en renvoyant celui-ci à la fin.


1 commentaires

Eh bien, il ne compilera pas sans valeur de retour factice. Lorsque le compilateur ne détecte pas que toutes les valeurs possibles déjà couvertes (il se plaindre d'un retour manquant!). Donc, l'OP a besoin juste de ST. faire taire le compilateur.



0
votes

Si vous changez votre dernier cas sur par défaut au lieu d'une valeur réelle, il éliminerait la nécessité de retourner quoi que ce soit après la déclaration (code> .

plus largement parlant, votre si Les instructions à l'intérieur de chaque case sont suspectes. Comment peut-on grade == 1 et grade> = 90 ? Le seul qui pourrait éventuellement fonctionner est le cas 6 depuis 6, il est également <40. Vous essayez d'utiliser 1-6 comme une sorte d'étiquette logique, mais en réalité, la JVM comparait la valeur de grade À ces chiffres pour décider de l'exécution de cas.

Je pense qu'il est un moyen plus facile d'exprimer cette logique. Il ressemble à grade sera leur niveau numérique (c'est-à-dire entre 0 et 100 mais en théorie, il pourrait également être négatif), donc je saisirais la déclaration Switch . / else: xxx

remarque La dernière instruction est juste sinon sans condition. Cela permet de fonctionner comme le cas de par défaut dans un (code> Switch Déclaration: Il attrapera une valeur qui ne répondra pas aux autres critères.


0 commentaires

0
votes

Concernant votre question:

  • Le dernier retour n'est pas nécessaire, il suffit de terminer commutateur avec par défaut clause et retourner la valeur par défaut là-bas.
  • Il n'est pas nécessaire d'utiliser Break STÉTENTIONS, puisque vous utilisez retour sur chaque cas

    Également, si vous vous limitez à utiliser uniquement le commutateur , il s'agit d'un moyen plus simple d'atteindre votre objectif: xxx / p>


0 commentaires

0
votes

Dans votre interrupteur, vous sautez sur les différentes pièces vérifiant si Grade est 1, 2, 3, etc. Mais vous le comparez à des valeurs de 0 à 100? Cela ne peut jamais fonctionner.

Mais vous n'avez pas besoin d'un commutateur, vous pouvez simplement utiliser une série de si instructions xxx

Et assurez-vous de couvrir le cas lorsque compte est 0, je ne l'ai pas fait ici, car je ne sais pas ce qui devrait être le résultat.


0 commentaires