如何设置此Java代码以添加+;当用户提供一组数字后,1到多个字母等级?

如何设置此Java代码以添加+;当用户提供一组数字后,1到多个字母等级?,java,user-input,Java,User Input,每当我输入一系列数字时,程序在考虑字母等级时只考虑第一个数字的值。我该如何解决这个问题 另外,如何记录用户输入的最高和最低数字 Welcome to the grader-ator! Enter a grade from 0-100 or enter a negative number to quit. 100 90 80 70 60 -1 Total number of grades is: 5 Number of A's: 1 Number of B's: 0 Numb

每当我输入一系列数字时,程序在考虑字母等级时只考虑第一个数字的值。我该如何解决这个问题

另外,如何记录用户输入的最高和最低数字

Welcome to the grader-ator! Enter a grade from 0-100 or enter a negative number to quit. 100 90 80 70 60 -1 Total number of grades is: 5 Number of A's: 1 Number of B's: 0 Number of C's: 0 Number of D's: 0 Number of F's: 0 Highest Score: 0 Lowest Score: 0 Average Score: 80 欢迎来到平地机! 输入0-100之间的等级或输入负数退出。 100 90 80 70 60 -1 年级总数为:5 A的数量:1 B的数量:0 C的数量:0 D的数量:0 F的数量:0 最高分:0 最低分:0 平均分:80分
import java.util.Scanner;
公营班级制{
公共静态void main(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
//计算后强制结束程序
布尔结束=真;
//为字母等级数创建一个保持器
int A=0;
int B=0;
int C=0;
int D=0;
int F=0;
int高分=0;
int=0;
System.out.println(“欢迎来到分级机ator!”);
做
{
System.out.println(“输入0-100的分数或输入负数退出”);
//从用户处获取分数
int grade=keyboard.nextInt();
//如果等级介于某个阈值之间,则字母等级的数量将增加
如果(等级>=93)
{
A++;
}
如果(等级<93&&grade>=85)
{
B++;
}
如果(等级<85&&grade>=77)
{
C++;
}
如果(等级<77&&grade>=70)
{
D++;
}
如果(等级<70&&grade>=0)
{
F++;
}
int average=0;//平均值的占位符
int numberOfGrades=0;//这将跟踪在中输入的等级数
while(grade>=0)//只要输入大于0,程序就会一直运行
{   
average+=grade;//将等级添加到平均值中。这与表示average=average+grade相同
numberOfGrades++;//将等级计数器增加1
等级=键盘.nextInt();
}
average/=numberOfGrades;//查找数字的平均值
System.out.println(“等级总数为:“+numberOfGrades”);
System.out.println(“A的数量:+A);
System.out.println(“B的数量:+B”);
System.out.println(“C的数量:+C);
System.out.println(“D的数量:+D);
System.out.println(“F的数量:+F);
System.out.println(“最高分数:+HighScore);//在这里放什么
System.out.println(“最低分数:+失败者);//在这里放什么
System.out.println(“平均分数:+平均值”);
//节目结束
}while(end=false);
}
}
我现在明白了。我在代码中过早地放置了“if”语句。它们应该是这样的

while(grade >= 0) //Keeps program running as long as input > 0
{   
    average += grade; //Adds the grade to the average.  Also this is the same as saying average = average + grade
    numberOfGrades++;//increments the grade counter by 1
    grade = keyboard.nextInt();
    // If the grade is between a certain threshold, the number of letter grades is increased
    if (grade >= 93)
    {
        A++;
    }
    if (grade < 93 && grade >= 85)
    {
        B++;
    }
    if (grade < 85 && grade >= 77)
    {
        C++;
    }
    if (grade < 77 && grade >= 70)
    {
        D++;
    }
    if (grade < 70 && grade >= 0)
    {
        F++;
    }
while(grade>=0)//只要输入大于0,程序就会一直运行
{   
average+=grade;//将等级添加到平均值中。这与表示average=average+grade相同
numberOfGrades++;//将等级计数器增加1
等级=键盘.nextInt();
//如果等级介于某个阈值之间,则字母等级的数量将增加
如果(等级>=93)
{
A++;
}
如果(等级<93&&grade>=85)
{
B++;
}
如果(等级<85&&grade>=77)
{
C++;
}
如果(等级<77&&grade>=70)
{
D++;
}
如果(等级<70&&grade>=0)
{
F++;
}

我认为您应该手动查看此代码以查找错误。这很明显,但也是调试/创建算法的基本部分。另一个想法:将程序分解为更易于调试的较小方法。修复此问题-->
do{…}while(end=false);
to
do{…}while(end!=false);
并插入一个条件,根据某个条件强制end=false!
while(grade >= 0) //Keeps program running as long as input > 0
{   
    average += grade; //Adds the grade to the average.  Also this is the same as saying average = average + grade
    numberOfGrades++;//increments the grade counter by 1
    grade = keyboard.nextInt();
    // If the grade is between a certain threshold, the number of letter grades is increased
    if (grade >= 93)
    {
        A++;
    }
    if (grade < 93 && grade >= 85)
    {
        B++;
    }
    if (grade < 85 && grade >= 77)
    {
        C++;
    }
    if (grade < 77 && grade >= 70)
    {
        D++;
    }
    if (grade < 70 && grade >= 0)
    {
        F++;
    }