【发布时间】:2014-08-25 01:35:04
【问题描述】:
我正在尝试编写一个简单的程序,该程序将使用扫描仪获取输入并输出最小数字、最大数字以及它们的平均值。但我不想要小于 0 或大于 100 的数字。我有程序输出最小值、最大值和平均值,它会告诉我输入的数字是小于 0 还是大于 100,但它仍然将其视为 for 循环中的“轮换”。我基本上希望程序在输入错误数字时返回到前一个数字,而不是在 for 循环中继续前进。有什么建议? 谢谢!
import java.text.DecimalFormat;
import java.util.Scanner;
public class ExamGrades {
public static void main(String[]args){
Scanner scan = new Scanner(System.in );
int number = 0;
double total = 0;
int minimum;
int maximum = 0;
System.out.println("Please enter the first integer: ");
number = scan.nextInt();
minimum=number;
total += number;
for(int i = 2; i<11; i++){
if(number<0 || number >100){
System.out.println("Please enter a valid number: ");
number = scan.nextInt();
}
else{
System.out.println("Please enter integer " + i + ":");
number = scan.nextInt();
total += number;
if(number<minimum)
minimum = number;
if(number>maximum)
maximum = number;
}
}
DecimalFormat oneDecimalPlace = new DecimalFormat("##.#");
System.out.println("The minimum is: " + minimum);
System.out.println("The maximum is: " + maximum);
System.out.println("The average is: " + oneDecimalPlace.format((total) / 10.0 ));
}
}
【问题讨论】: