我已经对所有主题进行了数组排序,命名为subjectName。此代码的目的是确保用户仅输入有效的数字(介于1.0和10.0之间)。但我不知道该怎么做。我创建了一个if语句,如果使用者名称不在0到10之间,则返回它,但是它不起作用。我不确定该如何解决。

编辑:subjectName是每个主题的名称,因此它是一个字符串。 subjectGrade是双精度型。两者都是阵列。忘了说。

这是我的代码:

for (int i = 0; i < subjectName.length; i++) {
            Scanner input = new Scanner(System.in);
            System.out.print("What is your grade for: " + subjectName[i] + "? ");
            subjectGrade[i] = input.nextDouble();

            if ( subjectGrade[i] < 0.0 || subjectGrade[i] > 10.0) {
                return;
            }

最佳答案

您应该使用while循环。成绩无效时提出问题。

while(subjectGrade[i] < 0.0 || subjectGrade[i] > 10.0)
{
    System.out.print("What is your grade for: " + subjectName[i] + "? ");
    subjectGrade[i] = input.nextDouble();
}


(代替if

无论如何,您的错误是return语句不会重复上一条命令或其他内容。它从函数返回一个值...

关于java - 如何确保用户仅输入0到10之间的数字?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40443168/

10-12 05:21