我之前在无关标签上发布了这个问题,对不起
readStudentGrade()
我想将方法double
与返回类型message
和参数String
一起用作img {
-webkit-filter: blur(13px);
-moz-filter: blur(13px);
-o-filter: blur(13px);
-ms-filter: blur(13px);
filter: blur(13px);
}
img:hover {
-webkit-filter: blur(0px);
-moz-filter: blur(0px);
-o-filter: blur(0px);
-ms-filter: blur(0px);
filter: blur(0px);
}
(代表Aptitude测试或学校成绩的名称)。允许用户输入一个标记,如果输入的值介于0和100之间,则返回该标记。否则,该方法将打印消息并强制用户输入正确的标记。我无法弄清楚如何在不造成无限循环的情况下做到这一点。
这就是输出的方式。
输入能力倾向测试成绩:120
输入无效! (必须在0到100之间) 请再试一次。
输入能力倾向测试成绩:90 输入入门年级:105
输入无效! (必须在0到100之间) 请再试一次。
输入入门年级:92 输入学校的成绩:150
输入无效! (必须在0到100之间) 请再试一次。
输入学校成绩:95
提前致谢。
答案 0 :(得分:3)
您的代码存在一些问题:
return message;
语句,它发生在if / else语句的范围之外。因此,无论用户输入的数据是否有效,该返回将在循环的第一次迭代结束时执行。你需要删除这一行。message
函数输入的名称readStudentGrade
是不合适的。你正在通过你想要检查的成绩,一个双倍。或许更好的名字是grade
。 以下是一种可能的解决方案:
public class JavaApplication50 {
double getInput(double min, double max, String message, Scanner in) {
while (true) {
System.out.println(message);
double input = in.nextDouble();
if (input <= max && input >= min) {
return input;
} else {
System.out.println("Invalid input! (must be between " + min + " and " + max + ") Please try again.");
}
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
JavaApplication50 app = new JavaApplication50();
System.out.println("Enter student's Grades...");
double aptTestGrade = app.getInput(0, 100, " > Enter the grade of Aptitude Test: ", in);
double introYearGrade = app.getInput(0, 100, " > Enter the grade of Introductory Year: ", in);
double schoolGrade = app.getInput(0, 100, " > Enter the grade of School: ", in);
System.out.print("Grades summary: \nAptitude Test: " + aptTestGrade + "\nIntroductory year: " + introYearGrade
+ "\nSchool: " + schoolGrade);
}
}
注意方法getInput
如何接受最小值,最大值和消息作为参数。它还可以接受错误消息,以获得更大的灵活性。
答案 1 :(得分:0)
如果合适的话,你也可以试试这个。
import java.util.Scanner;
public class Demo{
public static void main(String arg[])
{
int no=0;
Scanner in=new Scanner(System.in);
System.out.println("Enter students Grades:");
double message;
outer:while(true)
{
switch(no)
{
case 0:
System.out.println("Enter the grade of Aptitude Test :");
message = in.nextDouble();
if(message<0 | message>100)
{
System.out.println("Invalid input! (must be between 0 and 100)\n > Please try again.");
break;
}
else
{
no++;break;
}
case 1:
System.out.println("Enter the grade of Introductory Year :");
message = in.nextDouble();
if(message<0 | message>100)
{
System.out.println("Invalid input! (must be between 0 and 100)\n > Please try again.");
break;
}
else
{
no++;
break;
}
case 2:
System.out.println("Enter the grade of School :");
message = in.nextDouble();
if(message<0 | message>100)
{
System.out.println("Invalid input! (must be between 0 and 100)\n > Please try again.");
break;
}
else
{
no++;
break;
}
case 3:
break outer;
}
}
}
} 这个垫子可以帮助你找到解决方案。