-2

変数を作成し、while ループでコードをラップすると、繰り返されません。これは私が試したコードのサンプルです。

String repeat = "y";
    Scanner keyboard = new Scanner(System.in);
    while (repeat == "y"){
        String word1 = "this";
        String word2 = "that";
        String word3 = word1 + word2;
        System.out.println(word3);
        for(int x = 10; x<20; x = x+1){

            word3 = word1 + word3;
            System.out.println(word3);
        }
        repeat = keyboard.nextLine();
    }

スクリプトの最後の入力が何であっても、ただ終了します。何か助けはありますか?

4

4 に答える 4

1

行を変更する

 while (repeat == "y")

while("y".equalsIngnoreCase(repeat))  

keyboard.nextLine() ; 

keyboard.next();  

Java で文字列を比較するにはどうすればよいですか? 役に立ちます。

于 2013-09-06T17:48:45.277 に答える
0

「==」を使用して文字列を比較する場合。オブジェクト参照を比較しています。文字列の内容を比較するのではなく、本質的に2つのオブジェクトが同じかどうかを尋ねています。String.compareTo(..) メソッドを使用してみてください。

例:

while (repeat.compareTo("y") == 0) {
于 2013-09-06T17:49:30.837 に答える
0

問題はおそらく、2 つのオブジェクトを = で比較するという事実から発生しますが、あなたがしたいことは、Strings を String メソッド equals と比較することだと思います。したがって、次のようになります。

while(repeat.equals("y")){
...
}
于 2013-09-06T17:49:31.513 に答える
0

==文字列の比較には使用しないでください。

これを試して:-

  while ("y".equalsIngnoreCase(repeat) )
于 2013-09-06T17:49:35.623 に答える