当用户输入-1(就像它应该)但我的代码停止但是打印的平均值是错误的.
这就是我所拥有的:
import static java.lang.System.*;
import java.util.Scanner;
import java.util.*;
class averages_1
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter the scores:");
double score = 0;
double num = 0;
double sum = 0;
while (score != -1)
{
score = scan.nextDouble();
sum += score;
num++;
}
System.out.println("The average is:" + (sum/num));
}
}
Run Code Online (Sandbox Code Playgroud)
如果输入50然后输入105然后输出-1,则输出为
Enter the scores:
50
105
-1
The average is: 51.333333333333336
Run Code Online (Sandbox Code Playgroud)
我只需要纠正平均值.任何帮助表示赞赏!
您在平均值中包含-1.
避免它的一种方法是添加另一个条件:
while (score != -1)
{
score = scan.nextDouble();
if (score != -1) {
sum += score;
num++;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,更优雅的解决方案是在循环之前读取第一个输入,并且只添加有效输入:
score = scan.nextDouble();
while (score != -1)
{
sum += score;
num++;
score = scan.nextDouble();
}
Run Code Online (Sandbox Code Playgroud)
通常,更改while循环条件中使用的变量应该是您在迭代中执行的最后一项操作.
你可以在你的条件下读取输入while loop,这样一旦你读到-1你就退出循环,它就不会被添加到你的sum变量中
while ((score=scan.nextDouble()) != -1)
{
sum += score;
num++;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13051 次 |
| 最近记录: |