J'ai une boucle pour qui demande à l'utilisateur de saisir un numéro, puis fait quelque chose avec elle 10 fois p>
Je veux un chèque intégré à cela, si l'utilisateur entre une entrée non acceptée, la boucle doit redémarrer son itération actuelle P>
Par exemple, si l'utilisateur entre quelque chose qui ne va pas dans le tour 3, le tour 3 doit être redémarré. P>
Comment puis-je faire ça? Y a-t-il quelque chose comme une déclaration de Redo en Java? P>
3 Réponses :
quelque chose comme ça?
C'est ce que j'ai fait, je me demandais simplement s'il y avait une manière plus élégante.
@KillerPixler Oui, utilisez un DO-While CODE> BOOP au lieu de diminuer la valeur i code>.
Je pense que la modification de la valeur d'une variable de contrôle de boucle à l'intérieur de la boucle a tendance à être déroutant. Assez simple dans ce cas, mais dans une grande boucle, cela pourrait être non évident ce qui se passe. Je préfère la réponse postée par @ mik378: utilisez une boucle interne pour refaire à nouveau l'entrée jusqu'à la réception d'une entrée valide.
@Davecosta qui est absolument vrai pour les grandes boucles. Mais ne pensez-vous pas que c'est un peu cher d'avoir une boucle imbriquée?
@ CHAITANYA10 qui ne diminue pas du tout pour avoir ce type de boucle intérieure.
J'ai mis en œuvre la solution à l'aide d'un DO-TIM, mieux pour le lectures et la compréhension.
Vous avez quelques choix ici.
continuer strong>
La déclaration Continuer em> dans Java raconte une boucle de retourner à son point de départ. Si vous utilisez une boucle de boucle, cependant, cela continuera à la prochaine itération qui n'est probablement pas ce que vous voulez, cela fonctionne donc mieux avec une implémentation de boucle tandis que: p> for(int i = 0; i < 10; i++)
{
String s = getUserInput();
if(isInvalid(s))
{
i--;
continue;
}
}
préférez éviter de réaffecter la variable i code>, cela peut entraîner une confusion.
Ok, qu'est-ce que tu as essayé?
Allez-vous à la même école que ce gars ?
Utilisez un
DO-WHI code> boucle, pas unpour code> boucle.