需要从数字列表中显示最高和最低等级
Need to display the Max and Min Grade from a list of numbers
我需要输入成绩列表,并在输入字符时让代码停止。然后它会显示最高等级和最低等级。
我创建了一个while loop
,但是当我运行代码时,它一直在循环并且不会停止。
public class MaxMinGrades{
public static void main(String[] args){
double maxGrade = Double.MAX_VALUE;
double minGrade = Double.MIN_VALUE;
Scanner input = new Scanner(System.in);
System.out.println("Enter as many student grades as you like. Enter a character to stop.");
double grades = input.nextDouble();
while(input.hasNextDouble()) {
if (grades > maxGrade) {
maxGrade = grades;
}
if (grades < minGrade) {
minGrade = grades;
}
}
System.out.println("The highest grade is: " + maxGrade);
System.out.println("The lowest grade is: " + minGrade);
}
}
我会输入:50
66.85
73.5
78.9
77
q.
输出将是:最高等级是:78.9
最低年级是:50.0
while循环中没有break条件。
扫描仪将继续侦听输入。
仅当输入非双字符时循环才会退出。
您实际上也没有在每次迭代中获得下一个输入。您需要在循环内调用 input.nextDouble()
。
如果你想让它自己退出,你需要添加一个中断条件。
例如,您可以在输入一定数量后停止,例如:
int gradeCount = 0;
while(input.hasNextDouble() && gradeCount < 6) {
grades = input.nextDouble();
gradeCount += 1;
// your logic here
}
两点
1。一旦您获得第一个条目,您需要为 Min 和 Max 分配该值。
2。变量等级应使用循环内的最新输入进行更新。
public class MaxMinGrades {
public static void main(String[] args){
double maxGrade = Double.MAX_VALUE;
double minGrade = Double.MIN_VALUE;
Scanner input = new Scanner(System.in);
System.out.println("Enter as many student grades as you like. Enter a character to stop.");
double grades = input.nextDouble();
System.out.println("first entry="+grades);
minGrade = maxGrade = grades;
while(input.hasNextDouble()) {
grades = input.nextDouble();
if (grades > maxGrade) {
maxGrade = grades;
}
if (grades < minGrade) {
minGrade = grades;
}
}
System.out.println("The highest grade is: " + maxGrade);
System.out.println("The lowest grade is: " + minGrade);
}
}
public class MaxMinGrades{
public static void main(String[] args){
double maxGrade = 0.0;
double minGrade = 100.0;
Scanner input = new Scanner(System.in);
System.out.println("Enter as many student grades as you like. Enter a character to stop.");
while(input.hasNextDouble()) {
double grades = input.nextDouble();
if (grades > maxGrade) {
maxGrade = grades;
}
if (minGrade > grades) {
minGrade = grades;
}
}
System.out.println("The highest grade is: " + maxGrade);
System.out.println("The lowest grade is: " + minGrade);
}
}
有了这个,while loop
里面就有了中断条件。当某些内容发生变化时,会检查 boolean
条件。
我需要输入成绩列表,并在输入字符时让代码停止。然后它会显示最高等级和最低等级。
我创建了一个while loop
,但是当我运行代码时,它一直在循环并且不会停止。
public class MaxMinGrades{
public static void main(String[] args){
double maxGrade = Double.MAX_VALUE;
double minGrade = Double.MIN_VALUE;
Scanner input = new Scanner(System.in);
System.out.println("Enter as many student grades as you like. Enter a character to stop.");
double grades = input.nextDouble();
while(input.hasNextDouble()) {
if (grades > maxGrade) {
maxGrade = grades;
}
if (grades < minGrade) {
minGrade = grades;
}
}
System.out.println("The highest grade is: " + maxGrade);
System.out.println("The lowest grade is: " + minGrade);
}
}
我会输入:50
66.85
73.5
78.9
77
q.
输出将是:最高等级是:78.9
最低年级是:50.0
while循环中没有break条件。 扫描仪将继续侦听输入。 仅当输入非双字符时循环才会退出。
您实际上也没有在每次迭代中获得下一个输入。您需要在循环内调用 input.nextDouble()
。
如果你想让它自己退出,你需要添加一个中断条件。 例如,您可以在输入一定数量后停止,例如:
int gradeCount = 0;
while(input.hasNextDouble() && gradeCount < 6) {
grades = input.nextDouble();
gradeCount += 1;
// your logic here
}
两点
1。一旦您获得第一个条目,您需要为 Min 和 Max 分配该值。
2。变量等级应使用循环内的最新输入进行更新。
public class MaxMinGrades {
public static void main(String[] args){
double maxGrade = Double.MAX_VALUE;
double minGrade = Double.MIN_VALUE;
Scanner input = new Scanner(System.in);
System.out.println("Enter as many student grades as you like. Enter a character to stop.");
double grades = input.nextDouble();
System.out.println("first entry="+grades);
minGrade = maxGrade = grades;
while(input.hasNextDouble()) {
grades = input.nextDouble();
if (grades > maxGrade) {
maxGrade = grades;
}
if (grades < minGrade) {
minGrade = grades;
}
}
System.out.println("The highest grade is: " + maxGrade);
System.out.println("The lowest grade is: " + minGrade);
}
}
public class MaxMinGrades{
public static void main(String[] args){
double maxGrade = 0.0;
double minGrade = 100.0;
Scanner input = new Scanner(System.in);
System.out.println("Enter as many student grades as you like. Enter a character to stop.");
while(input.hasNextDouble()) {
double grades = input.nextDouble();
if (grades > maxGrade) {
maxGrade = grades;
}
if (minGrade > grades) {
minGrade = grades;
}
}
System.out.println("The highest grade is: " + maxGrade);
System.out.println("The lowest grade is: " + minGrade);
}
}
有了这个,while loop
里面就有了中断条件。当某些内容发生变化时,会检查 boolean
条件。