循环问题

时间:2017-04-21 08:06:37

标签: java loops

我是Java的新手。所以我创建了一个脚本来接收分数的输入,然后根据这个分数给出一个标记作为输出。我的问题是我希望代码重复以允许输入多个分数,但我无法使其工作。

编辑:我已尝试使用答案中的方法,但我无法正确使用。有人可以为我实现循环到我的代码中吗? 这是我的代码:

{{1}}

2 个答案:

答案 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());

希望你能清楚;)