-1
votes

Comment mettre une étiquette

Je ne peux pas comprendre où dois-je mettre l'étiquette 'One' dans le code (j'ai besoin de sauter la boucle tandis infinie) xxx

peut-on m'expliquer où devrais-je mettre l'étiquette?


1 commentaires

Problème non apparenté: Ne comparez pas les chaînes à l'aide de == ou ! = . Utilisez le Equals (...) ou le EqualSignorecase (...) méthode à la place. Comprendre que == vérifie si les deux Les références d'objet sont les mêmes qui ne sont pas ce qui vous intéresse. Les méthodes d'autre part Vérifiez si les deux chaînes ont le mêmes personnages dans le même ordre, et c'est ce qui compte ici.


3 Réponses :


2
votes

Vous pouvez utiliser une boucle.

do{
 x =JOptionPane.showInputDialog(null, "Insert a data");
y = y + Integer.parseInt(x);
}while(!(x.equals("ok")));

//here is where i need to get using the label
System.out.println("I did break");


1 commentaires

Oui, tu as raison mais je voulais comprendre comment utiliser des étiquettes. Merci quand même :)



0
votes

Je pense que l'étiquette est déjà au bon endroit.

Selon le Tutoriel Oracle Java :

La déclaration de pause termine la déclaration marquée; ce ne est pas Transférer le flux de contrôle sur l'étiquette. Le flux de contrôle est transféré à la déclaration immédiatement après l'étiquette (résiliée) déclaration.

Dans votre exemple, vous n'avez même pas besoin de l'étiquette, car votre relevé de pause quitte la tandis que (vrai) boucle de toute façon. Normalement, vous utilisez des étiquettes lorsque vous avez des boucles imbriquées.


1 commentaires

Je pensais la même chose, mais pourquoi ça ne marche pas alors? Le programme se termine réellement quand il arrive à la pause



-1
votes

OK, j'ai trouvé la réponse moi-même: L'erreur est que lorsque vous essayez d'attribuer à Y la valeur d'un int, si elle obtient une chaîne («OK»), elle se termine par une erreur. Donc, j'avais juste besoin de déplacer cette ligne après la séquence de si (et utilisez la méthode des égaux) et cela fonctionne maintenant.

one:
while (true) {
    x = JOptionPane.showInputDialog(null, "Insert a data");

    if (x.equals("ok")) {
    break one;
    }

    y = y + Integer.parseInt(x);
}

//here is where i need to get using the label
System.out.println("I did break");


0 commentaires