我该如何解决dedecentGrade(); 这样,在输入每个新的Int输入后,它就会给您一个成绩。我可以只对res2和res3重复res1,但是没有更简单的方法吗?
import java.util.Scanner;
public class Answer3 {
static int avg;
static int res1;
static int res2;
static int res3;
static Scanner inPut = new Scanner(System.in);
public static void main(String[] args) {
calcAverage();
}
static void calcAverage()
{
System.out.println("Please input exam 1 results");
res1 = inPut.nextInt();
determineGrade();
System.out.println("Please input exam 2 results");
res2 = inPut.nextInt();
determineGrade();
System.out.println("Please input exam 3 results");
res3 = inPut.nextInt();
determineGrade();
avg = (res1 + res2 + res3) / 3;
System.out.println("The average of these exam results are " + avg);
}
static void determineGrade()
{
String grade = null;
if ( res1 > 84 && res1 <101 )
{
grade = "HD";
}
else if ( res1 > 74 && res1 <85 )
{
grade = "D";
}
else if ( res1 > 64 && res1 < 75 )
{
grade = "C";
}
else if ( res1 > 49 && res1 < 65 )
{
grade = "P";
}
else if ( res1 < 50 )
{
grade = "F";
}
System.out.println("Your grade is " + grade);
}
}
您可以尝试以下解决方案。
determineGrade
将返回等级-您仅对主要方法限制打印结果。也resCount
使您的程序更加动态,更易于扩展。
public class Answer3 {
static int resCount = 3;
static Scanner inPut = new Scanner(System.in);
public static void main(String[] args) {
calcAverage();
}
static void calcAverage() {
int sum = 0;
for (int i = 0; i < resCount; i++) {
System.out.println("Please input exam " + i + " results");
int res = inPut.nextInt();
sum += res;
String grade = determineGrade(res);
System.out.println("Your grade is " + grade);
}
double avg = sum / resCount;
System.out.println("The average of these exam results are " + avg));
}
static String determineGrade(int res) {
if ( res > 84 && res <101 ) {
return "HD";
} else if ( res > 74 && res <85 ) {
return "D";
} else if ( res > 64 && res < 75 ) {
return "C";
} else if ( res > 49 && res < 65 ) {
return "P";
} else {
return "F";
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句