如果函数导致传递或失败,则添加else

时间:2018-01-22 12:18:05

标签: java

我正在学习java语言,我看到了这段代码。我想知道我是否可以添加一个if else条件,如果等级低于80,它将打印失败,否则通过。等。

System.out.print("Your Grade is ");
    if(avg>80)
    {
        System.out.print("A");

我搜索了其他链接,但我找不到任何内容。我希望有一个人可以帮助我。提前谢谢。

import java.util.*;
public class UserInteraction {

public static void main(String[] args) {
    UserChoiceManager userChoiceManager = new UserChoiceManager();
    UserChoice choice = UserChoice.UNKNOWN;

    do {
        choice = userChoiceManager.manage();
    } while (choice != UserChoice.EXIT);

    System.out.println("Thank you for using the system!");
}
}

enum UserChoice {
UNKNOWN(0),
ENTER_SUBJECT(1),
DISPLAY_DATA(2),
CALCULATE_AVERAGE_GRADE(3),
EXIT(4);

private int id;

public int getId() {
    return id;
}

UserChoice(int id) {
    this.id = id;
}

public static UserChoice getById(int input) {
    for (UserChoice value : UserChoice.values()) {
        if (value.getId() == input) {
            return value;
        }
    }
    return UserChoice.UNKNOWN;
}

}

class Subject {

private String name;

private int grade;

public Subject(String name, int grade) {
    this.name = name;
    this.grade = grade;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getGrade() {
    return grade;
}

public void setGrade(int grade) {
    this.grade = grade;
}

}

class UserChoiceManager {

private final static int SUBJECT_COUNT = 3;

private Subject[] subjects = new Subject[SUBJECT_COUNT];

private Scanner scan = new Scanner(System.in);

public UserChoiceManager() {
}

public UserChoice manage() {
    System.out.println(printHelp());

    UserChoice choice = getUserChoiceById(scan);

    if (choice == UserChoice.ENTER_SUBJECT) {
        choice = enterSubjects(choice);
    }

    if (choice == UserChoice.DISPLAY_DATA) {
        printSubjectsAndGrades();
    }

    if (choice == UserChoice.CALCULATE_AVERAGE_GRADE) {
        printAverageGrade();
    }

    return choice;
}

private static String printHelp() {
    StringBuilder usage = new StringBuilder("\nUsage:\n");
    usage.append(UserChoice.ENTER_SUBJECT.getId()).append(". Enter a subject name and a corresponding grade").append("\n");
    usage.append(UserChoice.DISPLAY_DATA.getId()).append(". Display all grades").append("\n");
    usage.append(UserChoice.CALCULATE_AVERAGE_GRADE.getId()).append(". Calculate the average grade").append("\n");
    usage.append(UserChoice.EXIT.getId()).append(". Exit system");

    return usage.toString();

}

private UserChoice getUserChoiceById(Scanner scan) {
    return UserChoice.getById(scan.nextInt());
}

private UserChoice enterSubjects(UserChoice choice) {
    System.out.println("Enter " + subjects.length + " subjects and their corresponding grades:");
    System.out.println();

    for (int i = 0; i < subjects.length; i++) {
        String subjectName = scanSubjectName();
        int grade = scanGrade();
        subjects[i] = new Subject(subjectName.toLowerCase(), grade);
    }

    System.out.println("Thank you!");
    System.out.println();

    return choice;
}

private String scanSubjectName() {
    Scanner temp = new Scanner(System.in);
    String subjectName = "";
    do {
        System.out.println("Subject:");
        subjectName = temp.nextLine();
        if (subjectName.equals("")) {
            System.out.println("Empty subject name! Try again.");
        }
    } while (subjectName.equals(""));

    return subjectName;
}

private int scanGrade() {
    int grade = 0;
    do {
        Scanner temp = new Scanner(System.in);
        System.out.println("Grade:");
        try {
            grade = temp.nextInt();
        } catch (InputMismatchException e) {
            System.out.println("Invalid grade. Enter numeric value! Try again.");
        }
    } while (grade == 0);

    return grade;
}

private void printAverageGrade() {
    System.out.println("Total of grades: " + getSum(subjects));
    System.out.println("Count of grades: " + subjects.length);
    System.out.println("Your average grade is: " + getAverage(subjects));
    System.out.println();
}

private void printSubjectsAndGrades() {
    System.out.println("Subjects" + "\tGrades");
    System.out.println("---------------------");

    for (int p = 0; p < subjects.length; p++) {
        System.out.println(subjects[p].getName() + "\t" + "\t" + subjects[p].getGrade());
    }
}

public static double getAverage(Subject[] subjects) {
    int sum = 0;
    for (Subject s : subjects)
        sum += s.getGrade();
    return ((double) sum) / subjects.length;
}

public static double getSum(Subject[] subjects) {
    int sum = 0;
    for (Subject s : subjects) {
        sum += s.getGrade();
    }
    return sum;

}
}

我尝试在print out标签中添加一些if函数,但它不起作用。

1 个答案:

答案 0 :(得分:0)

将printAverageGrade的实现更改为此,程序将打印出您想要的内容:

private void printAverageGrade() {
    System.out.println("Total of grades: " + getSum(subjects));
    System.out.println("Count of grades: " + subjects.length);
    double average = getAverage(subjects);
    System.out.println("Your average grade is: " + average);
    System.out.print("Your Grade is ");
    if (average > 80) {
        System.out.println("A");
    } else {
        System.out.println("Failed");
    }
    System.out.println();
}