3 回答

TA貢獻1943條經驗 獲得超7個贊
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就會檢查條件。

TA貢獻1804條經驗 獲得超3個贊
幾點
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);
}
}

TA貢獻2051條經驗 獲得超10個贊
while 循環中沒有中斷條件。掃描儀將繼續偵聽輸入。僅當輸入非雙字符時循環才會退出。
您實際上也沒有在每次迭代中獲得下一個輸入。您需要input.nextDouble()在循環內調用。
如果你想讓它自己退出,你需要添加一個中斷條件。例如,您可以在輸入一定數量后停止,例如:
int gradeCount = 0;
while(input.hasNextDouble() && gradeCount < 6) {
grades = input.nextDouble();
gradeCount += 1;
// your logic here
}
添加回答
舉報