Как я могу исправить defineGrade(); так что после ввода каждого нового входа Int он дает вам оценку. Я мог бы просто повторить res1 для res2 и res3, но разве нет более простого способа?Нужна помощь в упрощении метода в моем коде
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);
}
}
Подсказка: читать на методе * параметры * и возвращаемых значений, так что вы можете позвонить 'String grade1 = defineGrade (res1); String grade2 = defineGrade (res2); 'etc –
Я бы предложил инструкцию« case »в вашей функции' defineGrade'. –
@AlvinBunk Я предполагаю, что вы имеете в виду оператор switch. Но оператор switch не может сравнивать значение с диапазонами, только с константами. И переход через провал является постоянным источником ошибок в любом случае. –