java代码没有像我期望的那样工作

java代码没有像我期望的那样工作,java,loops,while-loop,storage,Java,Loops,While Loop,Storage,我真的很难让我的java代码正常工作。我已经编写了一个程序,它可以确定用户输入每个分数后的分数,还可以找到最大和最小的分数。程序成功地找出了哪个分数属于哪个等级,但一旦我实现了一段代码,试图从分数中找出最大的数字,它似乎不起作用,我也不确定它是什么 这是代码 import java.util.Scanner; public class Grade { public static void main(String[] args) { int Agrade=0; //diff

我真的很难让我的java代码正常工作。我已经编写了一个程序,它可以确定用户输入每个分数后的分数,还可以找到最大和最小的分数。程序成功地找出了哪个分数属于哪个等级,但一旦我实现了一段代码,试图从分数中找出最大的数字,它似乎不起作用,我也不确定它是什么

这是代码

import java.util.Scanner;

public class Grade
 {
 public static void main(String[] args)
 {
        int Agrade=0; //different variables used throughout the code
        int Bgrade=0;
        int Cgrade=0;
        int Dgrade=0;
        int Fgrade=0;
        int count=0;




    Scanner in = new Scanner(System.in);   //name of Scanner 

    System.out.println("Please enter the exam grades one after the other ");
    System.out.println("Please enter a negative number at the end of the grade list to control the flow and then press enter :");
    int score = in.nextInt(); //stores numbers inputted

    System.out.println("Please enter the grades again for the largest number: ");
    double largest = in.nextDouble();


    while (in.hasNextDouble()){
       double input = in.nextDouble();
       if (input > largest) {
          largest = input;
       }
    }



 while(score>0)   //start while loop
     {
       count++;
 if(score>=70 && score<=100)
        Agrade++;
    else if(score>=60 && score<=69)
        Bgrade++;
    else if(score>=50 && score<=59)
        Cgrade++;
    else if(score>=40 && score<=49)
        Dgrade++;
    else if(score>=0 && score<=39)
        Fgrade++;
    score = in.nextInt();
 } //end while



 System.out.println("Total number of grades :"+ count);
 System.out.println("The largest number :"+ largest);
 System.out.println("The number of As :"+ Agrade);
 System.out.println("The number of Bs :"+ Bgrade);
 System.out.println("The number of Cs :"+ Cgrade);
 System.out.println("The number of Ds :"+ Dgrade);
 System.out.println("The number of Fs :"+ Fgrade);

 } // end main
} // end class
import java.util.Scanner;
公营班级
{
公共静态void main(字符串[]args)
{
int Agrade=0;//代码中使用了不同的变量
int Bgrade=0;
int Cgrade=0;
int Dgrade=0;
int Fgrade=0;
整数计数=0;
扫描仪输入=新扫描仪(System.in);//扫描仪名称
System.out.println(“请依次输入考试成绩”);
System.out.println(“请在成绩列表末尾输入负数以控制流量,然后按enter:”);
int score=in.nextInt();//存储输入的数字
System.out.println(“请再次输入最大数字:”)的分数;
最大加倍=英寸下加倍();
while(在.hasNextDouble()中){
双输入=in.nextDouble();
如果(输入>最大值){
最大=输入;
}
}
while(分数>0)//开始while循环
{
计数++;

如果(分数>=70&&score=60&&score=50&&score=40&&score=0&&score,这可能是一个练习,因此将给出一个想法。 您的while循环似乎很好,只需在它之前声明两个变量。 一个用于保存用最低编号初始化的最大等级,另一个用于保存用最高编号初始化的最小等级

score=in.nextInt();
do

if ( score > highest  ) { highest = score;}
if ( score < lowest ) { lowest = score }
if(分数>最高){highest=score;}
如果(分数<最低){最低=分数}

祝你好运。

问题可能是每次while循环运行时都在声明变量
input

double input;
int score;
double input;
在while循环之前执行。然后在while循环中,将该行替换为:

input = in.nextDouble();
如果这不是问题所在,可能是您如何布置代码。第二个while循环(以
while(score>0)
开头)应该是您在.nextInt()中的
int score=in行
int score=in.nextInt()
将其放在第一个while循环之后意味着它在该while循环之后执行

作为旁注,像
Agrade
这样的常见变量应该用camelCase编写,其中第一个字母是小写,下一个单词的字母是大写。这将使您的变量

int aGrade = 0;
int bGrade = 0;
以此类推。这只是一种适当的形式,不应该影响你的程序。此外,你可能应该在程序顶部声明分数和输入,因为你在循环中使用它们。这也是一种良好的形式和组织。它看起来如下:

double input;
int score;
double input;

检查对代码的注释,以便于理解

主要类别: 文档:
  • (用于迭代)
  • (用于do while)

你说它似乎不起作用是什么意思?同样,请参见,不要以大写开头变量。对于OP好处
最低值==Integer.MIN\u值