所以我正在努力制作一个平均你的高尔夫分数的程序。我编辑了一个标准平均值计算器,使其工作:
import java.util.Scanner;
public class Test {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
int total = 0;
int score;
int average;
int counter = 0;
while (counter >= 0){
score = input.nextInt();
total = total + score;
counter++;
}
average= total/10;
System.out.println("Your average score is "+ average);
}
}
但是当我输入分数时,我可以继续输入无限分数而且从不平均分数。它只是期待着另一个得分。我知道这与这一行有关:
while (counter >= 0){
但我不知道该怎么做才能正常工作。
答案 0 :(得分:1)
你需要一些方法来摆脱循环。例如,输入-1:
int score = input.nextInt();
if (score < 0) { break; }
total += score;
在计算平均值时,您似乎也有一些错误:
counter
。例如:
float average = total / (float)counter;
答案 1 :(得分:1)
你永远找不到摆脱循环的方法:
while (counter >= 0){
score = input.nextInt();
total = total + score;
counter++;
}
将循环 20亿 次(不,我不夸张),因为你没有其他方法可以突破。
您可能想要的是将循环条件更改为:
int score = 0;
while (score >= 0){
输入负分数时会出现这种情况。
此外,您最后有一个整数除法。您想要创建浮点数,因此请将声明更改为:
double average;
并将此行更改为:
average = (double)total / 10.;
答案 2 :(得分:0)
您必须指定计数器值,默认值为0,因此while中的条件始终为true,因此您将进入无限循环。
答案 3 :(得分:0)
while (true) {
score = input.nextInt();
if (score == 0) {
break;
}
total = total + score;
counter++;
}
现在,当您输入不可能的分数0时,您的程序将意识到您已完成输入分数。