gpt4 book ai didi

java - Do..While循环不断重复,扫描仪问题

转载 作者:行者123 更新时间:2023-11-30 07:07:09 24 4
gpt4 key购买 nike

do {   
System.out.println("Set the A param: ");
if(input.hasNextDouble() == true) {
A = input.nextDouble();
if(A == 0) {
System.out.println("Param A cannot be a 0!");
}
} else if(input.hasNextDouble() == false) {
System.out.println("Param A must be a number!");
}
} while(A == 0 || input.hasNextDouble() == false);

您好,我是 Java 新手,我发现了一个我自己无法解决的障碍。

一切都很好,直到我输入一些字母而不是数字,然后这个 do..while 循环不断重复。

经过一番搜索后,我想这可能是扫描仪缓冲区的问题,因为我应该在每次循环之前使用 input.nextLine() 清除它,但我真的不知道应该在代码中的哪个位置放它。

感谢您的帮助。

最佳答案

只有在 input.hasNextDouble()true 时,您才真正使用扫描仪中的数据。

目前,如果 A == 0 并且缓冲区中有非数字数据,那么您确实会无限循环。

您需要在所有控制路径上使用缓冲区中的数据。特别是,如果缓冲区中有非数字的内容,那么您需要使用并立即丢弃它:input.next();就足够了。

关于java - Do..While循环不断重复,扫描仪问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39900252/

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