我想做的是使用 while 循环来检查 int 数字是正数还是负数,并根据该数字是正数还是负数来执行相关代码。用户将继续输入数字,直到他们输入负数,一旦他们这样做,while 循环将退出,它将在输入负数之前打印出所有正数的平均值。我试图得到每次用户输入数字时重新分配的 int 数字。
这是我的代码:
import java.util.*;
public class Question7{
public static void main (String [] args){
int number=0;
int average=0;
int counter=0;
int sum=0;
Scanner sc = new Scanner(System.in);
number = sc.nextInt();
while (number > 0) {
counter++;
sum = sum + number;
average= sum/counter;
}
System.out.println("this is the average:" + average);
}
}
原文由 Cathal Brady 发布,翻译遵循 CC BY-SA 4.0 许可协议
您需要在 while 循环中添加
number = sc.nextInt();
。否则就是死循环。您错过的另一点是整数除法。上面的大部分答案也都错过了。你的
counter
变量和sum
变量都是整数。因此除法也将是整数除法。考虑
平均值为 17⁄4=4
因此平均值应该是两倍。而且您必须将总和或反数加倍。