0

这是我的代码。我是超级菜鸟,所以不要对我发火,哈哈。我尝试了几种不同的方法,并查看了许多关于如何关闭循环的帖子和网站。我认为问题在于 (i==("quit")) 无法识别用户何时输入退出。它只是通过让我输入一个新单词并告诉我这是错误的单词来无限循环。

继承人的代码。

package monty;
import java.io.*;
import java.io.Console;
import java.util.Arrays;
import java.io.IOException;
import java.util.Scanner;

public class firsttry2 {

public static void main(String[] args) {

    System.out.print("Enter the word 'quit' to end this program. Otherwise, it will run indefinitely.");

    int x=0;
    Scanner in=new Scanner(System.in);

     while (x<1) {


         String i;

        i=in.next();

        if (i==("quit")) {x++; in.close(); break;}
        else {System.out.print("You did not enter the word 'quit'. Please try again ."); 
        }
    }

}

}

感谢你们能给我的任何帮助!我也用 while (true) 进行了尝试,但也无法正常工作。同样的结果,当我输入“退出”时无法识别。

4

2 回答 2

4

最好的替代品将是i.equals("quit")而不是i==("quit") 原因是==并且equals()不一样。下面解释了不同之处

==检查身份。那就是这两个对象是否是同一个对象,是否指向内存中的同一个地址。

.equals()默认情况下做同样的事情,但可以被覆盖以执行不同的相等比较。(即如果字符串以相同的顺序具有相同的字符,则认为它们相等)

如果您希望用户也可以编写退出退出,那么equals()您也可以使用equalsIgnoreCase()

于 2013-10-01T04:08:05.753 回答
2

您犯了一个非常常见的错误,即==在 Java 中使用运算符比较字符串。您需要使用该equals()功能。您可以在此处了解更多信息。

于 2013-10-01T04:08:56.550 回答