Я должен классифицировать определенную оценку в (A, B, C, D, F), но сообщение об ошибке не отображается - PullRequest
1 голос
/ 22 сентября 2019

Когда итоговая оценка выше 200, я хочу, чтобы появилось сообщение об ошибке, но это не так, я попытался структурировать свой цикл таким образом, но он просто не работает.

import java.util.Scanner;
import java.util.Formatter;
public class Lab3 {

public static void main(String[] args) {

    double midtermGrade = 50.0;
    double homeworkGrade = 0.0;
    double finalExamGrade = 50.0;
    double finalGrade = 0.0;

    char letterGrade = ' ';

    Scanner scan = new Scanner(System.in);

    System.out.println("Enter homework grade: ");
    homeworkGrade = scan.nextDouble();

    System.out.println("Enter midterm exam grade: ");
    midtermGrade = scan.nextDouble();

    System.out.println("Enter final exam grade: ");
    finalExamGrade = scan.nextDouble();

    if ((!(homeworkGrade >= 0) || !(homeworkGrade <= 100))) return;
    if (((midtermGrade >= 0) && (midtermGrade <= 100)))

        if ((((!(finalExamGrade > 0) || !(finalExamGrade < 200))))) {


            finalGrade = (finalExamGrade / 200) * 50 + (midtermGrade * .25) + (homeworkGrade * .25); //.25 denotes 25%
        }
    System.out.println("Invalid input. Homework and midterm grades should be between 0 and 100 and the final grade should be between 0 and 200");


            if (finalGrade >= 50) {

                letterGrade = 'P';

            } else if (finalGrade < 50) {
                letterGrade = 'F';
            }

            if (letterGrade == 'P') {

                System.out.println("Student passed the class");

            } else if (letterGrade == 'F') {
                System.out.println("Student failed the class");
            }

        }


}

Когда яставьте неприятно большие цифры, я не получаю никаких сообщений.Отладка заканчивается.

Ответы [ 2 ]

0 голосов
/ 22 сентября 2019

Я изменил твой код, и теперь он работает.вот оно:

    package test;

import java.util.Scanner;

public class Testing {

    public static void main(String[] args) {
        double midtermGrade = 50.0;
        double homeworkGrade = 0.0;
        double finalExamGrade = 50.0;
        double finalGrade = 0.0;

        char letterGrade = ' ';

        Scanner scan = new Scanner(System.in);

        System.out.println("Enter homework grade: ");
        homeworkGrade = scan.nextDouble();

        if (!(homeworkGrade >= 0) || !(homeworkGrade <= 100)) {
            System.out.println("Invalid input.Homework grades should be between 0 and 100");
            return;
        }

        System.out.println("Enter midterm exam grade: ");
        midtermGrade = scan.nextDouble();

        if (!(midtermGrade >= 0) && !(midtermGrade <= 100)){
            System.out.println("Invalid input.midterm grades should be between 0 and 100");
            return;
        }
        System.out.println("Enter final exam grade: ");
        finalExamGrade = scan.nextDouble();

        if ((!(finalExamGrade > 0) || !(finalExamGrade < 200))) {
            System.out.println("Invalid input. final grade should be between 0 and 200");
            return;
        }

        finalGrade = (finalExamGrade / 200) * 50 + (midtermGrade * .25) + (homeworkGrade * .25); //.25 denotes 25%

        if (finalGrade >= 50) {

            letterGrade = 'P';

        } else if (finalGrade < 50) {
            letterGrade = 'F';
        }

        if (letterGrade == 'P') {

            System.out.println("Student passed the class");

        } else if (letterGrade == 'F') {
            System.out.println("Student failed the class");
        }
    }

}

Вам просто нужно изменить имя пакета и имя класса.

Примечание: - лучше проверять каждый вход после сканирования.И проверьте правильность значения или нет.если введенные данные неверны, вы должны вернуть и завершить программу.

0 голосов
/ 22 сентября 2019

Я думаю, что!мешает с итоговой оценкой

...