我是Java的新手。所以我创建了一个脚本来接收分数的输入,然后根据这个分数给出一个标记作为输出。我的问题是我希望代码重复以允许输入多个分数,但我无法使其工作。
编辑:我已尝试使用答案中的方法,但我无法正确使用。有人可以为我实现循环到我的代码中吗? 这是我的代码:
{{1}}
答案 0 :(得分:0)
我能想到的最简单的方法就是创建一个名为student的类,并为名称,主题,分数等设置变量。如果你想要或者只是有一个接受这些输入的构造函数,可以使用setter和getter。接下来有一个像computeGrade()的方法。每当你想要一些东西时,就创建这个学生班的实例。
puclic class Student{
public String mName;
public String mSub1;
.
public int m_scoreSub1;
.
.
public computeScore(int m_score){
* your logic goes here ( the if else one)
}
}
现在只是实例化类!!!
答案 1 :(得分:0)
首先,让我们将主逻辑重构为另一个名为calcGrade()的方法:
public void calcGrade() {
String studentname;
int mark = 100; // listing maximum mark
Scanner inText = new Scanner(System.in);
System.out.print("Please enter the name of the student >> ");
studentname = inText.nextLine();
Scanner inNumber = new Scanner(System.in);
System.out.print("Please enter mark for student " + studentname + " out of 100 >> ");
mark = inText.nextInt();
if(mark <50) System.out.print("The grade for " + studentname + " is F " );
else if(mark <65) System.out.print("The grade for " + studentname + " is P " );
else if(mark <75) System.out.print("The grade for " + studentname + " is C " );
else if(mark <85) System.out.print("The grade for " + studentname + " is D " );
else System.out.print("The grade for " + studentname + " is HD2" );
}
如果我们调用此方法,它将加载一个新的学生名称&amp;从System.in得分,计算成绩然后打印出来。
好的,下一部分将是循环。
Java中有3种类型的循环,用于/ while / do-while。
您可以使用&#34;进行&#34;当你确切知道你想要循环的时间时。
E.g。你知道你班上只有10名学生,那么你可以写下这样的代码:
for (int i = 0; i < 10; i++) {
calcGrade();
}
如果你不知道时间,但是你知道结束循环有一个确切的条件,你可以使用while或do-while。 while和do-while之间的区别是while可以先执行条件检查然后执行内部逻辑,并且do-while总是执行内部逻辑一次然后检查条件。
E.g。当你获得一个String&#34; YES&#34;你想继续循环。来自System.in。
System.out.println("Please input the first student info, YES or NO?");
Scanner inText = new Scanner(System.in);
while ("YES".equals(inText.nextLine()) {
calcGrade();
System.out.println("Continue input the next student info, YES or NO?");
}
此外,如果你知道班上至少有一个人,你可以使用do-while。
Scanner inText = new Scanner(System.in);
do {
calcGrade();
System.out.println("Continue input the next student info, YES or NO?");
} while ("YES".equals(inText.nextLine());
希望你能清楚;)