【发布时间】:2015-01-08 20:40:27
【问题描述】:
我设计了一个程序,要求用户输入任何内容。
一旦用户输入了“STOP”这个词,程序就会终止。但是我对 .equalsIgnoreCase 方法有点困惑。
这是正常工作的代码:
import java.util.Scanner;
public class Stop {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String name;
do {
System.out.println("Enter a name: ");
name = scan.next();
System.out.println(name);
//Keep looping until the name does not equal stop, once it equals stop
//then stop the program
} while(!name.equalsIgnoreCase("STOP"));
System.out.println("Program Terminated!");
scan.close();
}
}
但在我最初的尝试中,我在 while() 中尝试了以下代码,
while(name.equalsIgnoreCase("STOP"));
我没有使用!,因为我脑海中的逻辑是字符串名称将简单地与“STOP”进行比较,例如当 String name = STOP 时终止程序但是在运行该代码时我发现程序仅在 1 个循环后终止,所以无论用户在程序中键入什么内容都在循环一次后终止,但是当我设置逻辑继续循环时而名称不等于 STOP。程序开始正常运行,为什么会这样?为什么它在最初的尝试中不起作用?
谢谢
【问题讨论】:
-
您在运行第一个版本的代码时是否尝试输入
stop?结果如何? -
你知道
while是什么意思吗? (你可能把它误认为until,在java中不存在) -
检查特定条件的语句,例如当文件有下一行时继续循环
-
do这个代码while我的name是不是"STOP"。 不是是!如果你拿出!,然后看你得到什么。 -
是的,我想这就是我的困惑所在
标签: java do-while control-flow