gpt4 book ai didi

java - 使用 .equalsIgnoreCase 时如何退出循环

转载 作者:行者123 更新时间:2023-12-01 12:03:24 24 4
gpt4 key购买 nike

我设计了一个程序,要求用户输入任何内容。

一旦用户输入“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”进行比较,例如当字符串名称 = STOP 时终止程序,但是在运行该代码时,我发现程序仅在 1 个循环后终止,因此无论用户在程序中输入什么,程序都会在循环一次后终止,但是当我将逻辑设置为继续循环时而名称不等于 STOP。程序开始正常运行,为什么会这样呢?为什么第一次尝试不起作用?

谢谢

最佳答案

当语句为真时,你的循环将继续运行。在你的情况下,这意味着:

while(!name.equalsIgnoreCase("STOP"))

因此,如果您的名字等于“STOP”,则语句返回 true(循环继续运行),但由于您否定了语句的结果,只要您的名字不等于“STOP”,它就会继续运行。

只要语句为真 -> 只要名称等于“STOP”,您的第一次尝试就会运行。

关于java - 使用 .equalsIgnoreCase 时如何退出循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27849122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com