gpt4 book ai didi

java - 为什么Java直接跳过if语句?

转载 作者:行者123 更新时间:2023-12-02 13:10:54 26 4
gpt4 key购买 nike

import java.util.Scanner;
public class Box
{
public static void main(String[] args)
{
String empty = "";
String yes = "yes";
String no = "no";
String response;
String name;
Scanner input = new Scanner(System.in);
System.out.print("Please enter your name >>");
name = input.nextLine();
if(name.equals(empty))
{
System.out.println("You did not enter a name, please try again >>");
name = input.nextLine();
}
System.out.println("Would you like the profanity filter turned on?");
response = input.nextLine();
response = response.toLowerCase();
if(response.equals(yes) || response.equals(no))
{
if(response.equals(yes))
System.out.print("Profanity filter will be turned on.");
else
System.out.print("Profanity filter will not be turned on.");
}
else
System.out.print("Invalid response, please try again.");
}
}

这会显示“请输入您的名字>>”,但无论我在那里输入什么,即使它是空的,它总是询问您是否要打开脏话过滤器。它只是跳过 if 应该永远循环,直到您实际输入名称,我不明白为什么。

另外,我知道我没有在标题中问这个问题,但我也无法找出最终语句循环回到“response = input.nextLine();”的方法当有人没有输入"is"或“否”时。

最佳答案

如果你希望它永远循环,那么你需要使用 while 循环而不是 if,例如:

Scanner input = new Scanner(System.in);
System.out.print("Please enter your name >>");
String name = input.nextLine();
while(name.isEmpty()){
System.out.println("You did not enter a name, please try again >>");
name = input.nextLine();
}

这将不断要求用户输入名称,直到他输入非空String

关于java - 为什么Java直接跳过if语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43968827/

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