gpt4 book ai didi

java - 尽管条件失败,While 循环仍继续运行

转载 作者:行者123 更新时间:2023-12-01 20:22:57 26 4
gpt4 key购买 nike

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String sent = "y";
int a = 0;
int b = 0;
System.out.println("Welcome!\nThis program compares two letters in a sentence.");
while(!sent.equalsIgnoreCase("X")) {
System.out.print("Enter a sentence or X to exit: ");
sent = input.next();

System.out.print("Enter the numeric location of the first letter: ");
while(!input.hasNextInt()) {
System.out.println("Error! Please enter a number not text!");
input.nextLine();

System.out.print("Enter the numeric location of the first letter: ");
}
a = input.nextInt();


System.out.print("Enter the numeric location of the second letter: ");
while(!input.hasNextInt()) {
System.out.println("Error! Please enter a number not text!");
input.nextLine();

System.out.print("Enter the numeric location of the second letter: ");
}
b = input.nextInt();

System.out.println();

char c = sent.charAt(a);
char d = sent.charAt(b);

if(c==d) {
System.out.println(c+" and "+d+" are identical.\n");
}
else {
System.out.println(c+ " and "+ d + " are unique characters. \n");
}

}
System.out.print("GoodBye!");


}

即使你输入 X,这个循环也会继续运行,我不知道为什么。此外,当您输入文本而不是数字时,错误消息将如下所示:错误!请输入数字而不是文字!输入第一个字母的数字位置:错误!请输入数字而不是文字!输入第一个字母的数字位置:

只有第三句话会接受用户输入。

最佳答案

这段代码sent = input.next()没有阅读整个句子。它只读一个字。尝试使用 nextLine() 代替。

此外,您应该在设置 sent 后立即测试退出条件。

关于java - 尽管条件失败,While 循环仍继续运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58927265/

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