gpt4 book ai didi

java - 使用 Java 扫描器时条件未按预期工作

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

我基本上想知道为什么如果用户输入诸如-0.5之类的数字,我的条件语句允许变量指数变为0.0。这是我的代码...

    Scanner num2 = new Scanner(System.in);
System.out.println("Enter an integer value for n: ");

int temp = 0;

if(num2.hasNextInt()) {
temp = num2.nextInt();
if(temp >= 1.0 ){
exponent = temp;
}
else {
System.out.println("You have not entered a positive integer value for n.");
exponent();
}
}
return exponent;

当我将 temp 分配给 nextInt 时,奇怪的部分发生了。通过这样做,我希望使以下条件语句按预期工作(temp 必须大于或等于 1 才能设置指数)。然而,当我调用这个函数并输入 -0.5 时,函数完成并使得指数 = 0。在这种情况下,我的目标是拥有一个大于或等于 1 的指数。提前致谢!

最佳答案

如果您的输入是-0.5,则条件num2.hasNextInt()将为假,下一条执行的指令将返回指数;,这里似乎返回 0(我不知道为什么,因为您提供的代码不完整)。

要正确检查输入是否正确,请尝试以下操作:

if(num2.hasNextInt() && (temp = num2.nextInt()) >= 1) {
exponent = temp;
}
else {
System.out.println("You have not entered a positive integer value for n.");
exponent();
}

编辑:我不知道你的exponent()方法做了什么,但如果是相同的方法,我还建议使用简单的for循环而不是递归调用,如其他答案中所述。

关于java - 使用 Java 扫描器时条件未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25836892/

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