Как я могу получить это, если заявление работает правильно? - PullRequest
0 голосов
/ 29 марта 2019

Для моей программы я хотел бы получить что-то, что запрашивает количество студентов, запрашивает их баллы, а затем отображает вывод, сколько из этих баллов было А, В, С и т. Д.Поэтому, если я введу 5 учеников, я смогу ввести эти 5 баллов, и ТОГДА отобразятся соответствующие оценки.Вместо этого он отображает соответствующие оценки после ввода одной оценки, а затем запрашивает другую оценку.

//Declarations
    int A=0,B=0,C=0,D=0,F=0, score,I, students;
    I=1;

    System.out.println("How many students are in your class: ");
    students = input.nextInt();
    while (I<=students) {
    System.out.println("enter a score:");
    score=input.nextInt();


    if(score >= 90 && score <= 100)
        A++;
    else if(score>=80 && score<=89)
        B++;
    else if(score>=70 && score<=79)
        C++;
    else if(score>=60 && score<=69)
        D++;
    else if(score>=0 && score<=59)
        F++;


       System.out.println("Total number of A's:"+ A);
       System.out.println("Total number of B's:"+ B);
       System.out.println("Total number of C's:"+ C);
       System.out.println("Total number of D's:"+ D);
       System.out.println("Total number of F's:"+ F);


}

}}

Ответы [ 5 ]

0 голосов
/ 29 марта 2019

Попробуйте это:

{ 
    int A=0,B=0,C=0,D=0,F=0, score;

    Scanner s = new Scanner(System.in);

    System.out.println("How many students are in your class: ");

    int numberOfStudents = s.nextInt();

    for (int i = 0 ; i < numberOfStudents ; i++) {
        System.out.println("enter score from 0 to 100 for student number " + (i + 1)  + " :");
        score =s.nextInt();

            if(score >= 90 && score <= 100)
                A++;
            else if(score>=80 && score<=89)
                B++;
            else if(score>=70 && score<=79)
                C++;
            else if(score>=60 && score<=69)
                D++;
            else if(score>=0 && score<=59)
                F++;

    }

       System.out.println("Total number of A's:"+ A);
       System.out.println("Total number of B's:"+ B);
       System.out.println("Total number of C's:"+ C);
       System.out.println("Total number of D's:"+ D);
       System.out.println("Total number of F's:"+ F);
}
0 голосов
/ 29 марта 2019

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

    //Declarations
    int A=0,B=0,C=0,D=0,F=0, score,I, students;
    I=1;

    System.out.println("How many students are in your class: ");
    students = input.nextInt();
    while (I<=students) {
        System.out.println("enter a score:");
        score=input.nextInt();


        if(score >= 90 && score <= 100)
            A++;
        else if(score>=80 && score<=89)
            B++;
        else if(score>=70 && score<=79)
            C++;
        else if(score>=60 && score<=69)
            D++;
        else if(score>=0 && score<=59)
            F++;


        I++;  //or students--

    }

    System.out.println("Total number of A's:"+ A);
    System.out.println("Total number of B's:"+ B);
    System.out.println("Total number of C's:"+ C);
    System.out.println("Total number of D's:"+ D);
    System.out.println("Total number of F's:"+ F);
0 голосов
/ 29 марта 2019

В вашем коде есть две проблемы:

  1. У вас есть System.out.println внутри while
  2. Вы не уменьшаете количество учеников, поэтому он всегда будет запрашивать счет, то есть он никогда не выйдет за пределы цикла.

Вот как это делается

    int A = 0, B = 0, C = 0, D = 0, F = 0, score, I, students;
    I = 1;
    Scanner input = new Scanner(System.in);
    System.out.println("How many students are in your class: ");
    students = input.nextInt();

    while (I <= students) {
        System.out.println("enter a score:");
        score = input.nextInt();


        if (score >= 90 && score <= 100)
            A++;
        else if (score >= 80 && score <= 89)
            B++;
        else if (score >= 70 && score <= 79)
            C++;
        else if (score >= 60 && score <= 69)
            D++;
        else if (score >= 0 && score <= 59)
            F++;

        students--;

    }
    System.out.println("Total number of A's:" + A);
    System.out.println("Total number of B's:" + B);
    System.out.println("Total number of C's:" + C);
    System.out.println("Total number of D's:" + D);
    System.out.println("Total number of F's:" + F);

Я добавил students--, потому что он уменьшит количество учеников, которых вы набираете, поэтому, когда у него заканчиваются студенты, он выйдет из цикла while

0 голосов
/ 29 марта 2019

Такое ощущение, что вы не на месте, когда скобка петли.Поставьте скобку (закрывающую скобку цикла while) после f ++.Надеюсь, что это решит вашу проблему.И студент ... должен быть там.

Я бы посоветовал вам использовать цикл for, который, как мне показалось, гораздо проще для начинающих.

for( int i=0; i < students; i++) {
  //statements here  
}
0 голосов
/ 29 марта 2019

Вкратце - область действия цикла while должна быть меньше:

Подробности : для каждого учащегося вы хотите обработать его тестовый результат и увеличить одну из нескольких переменных.Как только вы сделаете это полностью (например, выйдите из цикла!) - вы хотите подвести итоги.

//Declarations
    int A=0,B=0,C=0,D=0,F=0, score,I, students;
    I=1;

    System.out.println("How many students are in your class: ");
    students = input.nextInt();
    while (I<=students) { // <-- separate unrelated problem where you aren't iterating properly
        System.out.println("enter a score:");
        score=input.nextInt();


        if(score >= 90 && score <= 100)
            A++;
        else if(score>=80 && score<=89)
            B++;
        else if(score>=70 && score<=79)
            C++;
        else if(score>=60 && score<=69)
            D++;
        else if(score>=0 && score<=59)
            F++;
        }
        I++;
    } // <- the while loop should end here 

   System.out.println("Total number of A's:"+ A);
   System.out.println("Total number of B's:"+ B);
   System.out.println("Total number of C's:"+ C);
   System.out.println("Total number of D's:"+ D);
   System.out.println("Total number of F's:"+ F);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...