Bien travaillé depuis des heures aujourd'hui, donc je pourrais manquer quelque chose de stupide, mais, à ce stade, je suis un peu aveugle avec cela et je cherche une explication pour ce comportement2 renvoie le tir dans la même fonction?
J'ai fait un exemple du problème que je suis avoir et la solution que j'ai trouvé n'est pas tout à fait une solution. Le problème: à la fonction suivante, je passe 1 comme shotCount et 9 comme Countdown le résultat lorsque je débogue, je vois le premier si exécuté, et exécutez le retour 2, mais aussi l'autre décide de courir vers et enfin retourner -1
public int getNextShot(int shotCount, int Countdown)
{
if ((shotCount == 1) && (Countdown != 10)) return 2;
else if (shotCount == 0) return 1;
else return -1;
}
mais si je fais cela (mêmes paramètres), il fonctionne:
public int getNextShot(int shotCount, int Countdown)
{
int res = -2;
if ((shotCount == 1) && (Countdown != 10)) res = 2;
else if (shotCount == 0) res = 1;
else res = -1;
return res;
}
Suis-je manque quelque chose ici? Merci :)
Pourquoi vous n'utilisez pas accolades ? –
Publiez le code appelant cette méthode, et pourquoi vous pensez avoir "2 retours de tir" (ce qui n'est pas possible en Java, du moins comme décrit). – jkraybill
Êtes-vous sûr de définir les points d'arrêt aux bons endroits? Peut-être avez-vous accidentellement ignoré l'une de vos déclarations de retour tout en continuant l'exécution de code dans le débogueur, et en obtenant en fait une deuxième invocation de votre fonction? Essayez de diviser les retours à leurs propres lignes, et de définir des points de rupture sur toutes les lignes. (et comme Oleg a dit - utilisez des accolades! C'est l'une des raisons pour les * toujours * les inclure) –