Java 我想通过字符串输入来中断循环。但是程序正在无限地接受输入

Java 我想通过字符串输入来中断循环。但是程序正在无限地接受输入,java,Java,我想通过字符串输入来中断循环。但是程序正在无限地接受输入 public static void main(String[] args) { int i; String test; Scanner inputString = new Scanner(System.in); while(1==1){ test=inputString.next(); if(test=="Break"){ break;} } System.out.println("the

我想通过字符串输入来中断循环。但是程序正在无限地接受输入

public static void main(String[] args) {
int i;
String test;
Scanner inputString = new Scanner(System.in);  
  while(1==1){
    test=inputString.next();
    if(test=="Break"){
        break;}

  }
System.out.println("the loop actually broke");

}

尝试使用
equals
方法,而不是像这样使用
=

 if("Break".equals(test)){

尝试使用
equals
方法,而不是像这样使用
=

 if("Break".equals(test)){

您应该使用“test.equals(“Break”)”而不是“test==”Break“”,因为在Java中“==”检查引用相等性(它们是否是相同的对象),而“equals()”检查值相等性(它们在“逻辑上”是否相等)

您应该使用“test.equals(“Break”)而不是“test==”Break“”,因为在Java中“==”检查引用是否相等(它们是否是相同的对象),但“equals()”检查值是否相等(它们是否“逻辑上”相等)

为了清晰起见,我可能会将其转到
test.equals(“Break”)
。还请注意,如果输入为“break”(或“break”、“break”等),则此代码将无法按预期工作。因此,如果您想停止对字符串“break”的任何大小写变体的执行,您需要使用类似于
test.toLowerCase().equals(“break”)
的东西:
test.toLowerCase().equals(“break”)(
test.toLowerCase().equals(“break”)将永远不会是
true
;-)“Break”是一个字符串,它取决于用户输入,他选择使用这个词,他可以选择其他词。如果字符串的大小写在这里不重要,你可以使用
if(test.equalsIgnoreCase(“Break”)
我可能会将其转换为
test.equals(“Break”)
为了清晰起见。还请注意,如果输入为“break”(或“break”、“break”等),则此代码将无法按预期工作。因此,如果要停止对字符串“break”的任何大写变量执行,则需要使用类似于
test.toLowerCase().equals(“break”)
的内容:
test.toLowerCase().equals(“break”)
(无大写字母“B”)@TheHeadRush
test.toLowerCase().equals(“Break”)
永远不会是
true
;-)“Break”是一个字符串它取决于用户输入,他选择使用这个词他可以选择其他词如果字符串的大小写在这里不重要,你可以使用
if(test.equalsIgnoreCase(“Break”)
谢谢Aditya Kumar。你对解决方案的解释很好。谢谢你的夸奖…如果你投赞成票,我会很高兴的。:)谢谢Aditya Kumar。你对解决方案的解释很好。谢谢你的夸奖…如果你投赞成票,我会很高兴的。:)