gpt4 book ai didi

java - 'else if'语句中的逻辑运算符

转载 作者:行者123 更新时间:2023-12-02 04:25:38 27 4
gpt4 key购买 nike

我正在尝试学习“if else”语句,但我在脚本的中间“if else”部分遇到问题。

package practice;
import java.util.Scanner;
public class Practice {

public static void main(String[] args) {
// TODO Auto-generated method stub

Scanner in = new Scanner(System.in);
System.out.println("enter a number between 1 and 10 ");
if (!in.hasNextDouble()) {
String word = in.next();
System.err.println(word + " is not a number");
} else if (!(in.nextDouble() > 0) || !(in.nextDouble() <= 10)) {
Double wrongnumber = in.nextDouble();
System.err.println(wrongnumber + " is not between 1 and 10");
} else {
System.out.println("It works!");
}
return;

}

}

没有错误,但在“else if” block 中,无论我是否输入 1 到 10 之间的数字,我都无法让它打印错误“.....不在 1 到 10 之间”更高。它也不会打印“它有效!”当我添加“else if” block 时,就不再行了。任何建议将不胜感激。

最佳答案

您在 if else block 中多次调用 in.nextDouble(),因此每次都会得到其他内容。

if (!(in.nextDouble() > 0) || !(in.nextDouble() <= 10)) {
Double wrongnumber = in.nextDouble();
System.err.println(wrongnumber + " is not between 1 and 10");
}

将其转换为类似的内容

double next = in.nextDouble();
if (!(next > 0) || !(next <= 10)) {
Double wrongnumber = next;
System.err.println(wrongnumber + " is not between 1 and 10");
}

为了在逻辑上正确,您可以切换到 Integer 而不是 Double 值。

关于java - 'else if'语句中的逻辑运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51931969/

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