добавление функции else if в результате передачи или неудачи

75
8

Я изучаю 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;

}
}

Я попытался добавить некоторые функции if в тег print out, но он не работает.

спросил(а) 2021-01-19T13:44:35+03:00 2 месяца, 3 недели назад
1
Решение
97

Измените свою реализацию 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();
}

ответил(а) 2021-01-19T13:44:35+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема