java代码没有像我期望的那样工作
我真的很难让我的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
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值