8
votes

Pause faire pendant que la boucle Java?

Je suis nouveau dans Java et je ne sais pas comment briser une boucle que j'utilise dans mon code ci-dessous? Je pensais pouvoir entrer -1 pour briser ou tous les autres chiffres pour continuer la boucle.

import javax.swing.*;
public class Triangel {

public static void main(String[] args) {

int control = 1;

while (control == 1){

    String value = JOptionPane.showInputDialog("Enter a number or -1 to stop");

    if(value == "-1"){
         control = 0;
    }
System.out.println(value);
}

}


2 commentaires

Ce n'est pas un do ... tandis que boucle, il s'agit d'un pendant boucle. Vous le cassez en émettant pause; n'importe où à l'intérieur de la boucle.


Triangle: Beedictionary.com/common-errors/angel_vs_angle


3 Réponses :


3
votes

Vous pouvez utiliser break : xxx


2 commentaires

Ne comparez pas les chaînes à l'aide de == mais .equals à la place.


oh désolé - je n'ai pas remarqué que c'était Java, pensa c #



5
votes

Vous devez utiliser la méthode string.equals () lors de la comparaison des chaînes. Votre code valeur == "-1" vérifie l'égalité de référence, pas la valeur égalité


0 commentaires

13
votes

Vous devez utiliser .fequals () code> au lieu de == code>, comme: xxx pré>

lorsque vous utilisez == code> Vous vérifiez l'égalité de référence (c'est-à-dire que le même pointeur), mais lorsque vous utilisez .equals () code> vous vérifiez l'égalité de valeur (c'est-à-dire qu'ils pointent-ils la même chose). Typiquement .equals () code> est le bon choix. P>

Vous pouvez également utiliser break code> pour quitter une boucle, comme: P>

while( true ) {
    String value = JOptionPane.showInputDialog( "Enter a number or -1 to stop" );
    System.out.println( value );
    if ( "-1".equals(value) ) {
        break;
    }
}


1 commentaires

== compare un objet pour l'égalité de référence, c'est-à-dire que se réfèrent-ils au même objet exactement même? Si j'ai une structure qui détient un entier, et je dis une nouvelle structure (4) == nouvelle structure (4), cela sera faux car, même si j'ai initialisé l'entier de la structure à 4 dans les deux objets, ce sont des objets différents. Cependant, si je surchargez des égaux (et de hashcode, voir les javadocs) correctement, la nouvelle structure (4) .equenilles (nouvelle structure (4)) imprimera true - même s'ils sont des objets différents, ils sont la même chose que pour leur égale contrat.