-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

当您使用 '==' 比较字符串时。您正在比较对象引用。您本质上是在询问这两个对象是否相同,而不是比较字符串内容。尝试使用 String.compareTo(..) 方法。

例子:

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

问题可能来自您将两个对象与 = 进行比较的事实,但我想您想要做的是将字符串与 String 方法 equals 进行比较,所以它看起来像这样:

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

永远不要==用来比较字符串。

试试这个:-

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