要解决的问题
编写一个名为MyWhiley1的程序,要求用户键入一个
正整数。
当用户键入一个负值时,程序将写入ERROR和
要求另一个值。
当用户键入0时,表示已键入最后一个值
并且程序必须写出正整数的平均值。
如果键入的值的数量为零,则程序将写入'NO
平均'。
但是我有一些错误,如果我输入一个正数然后输入一个负数,我的代码将无法正常运行。
public class MyWhiley1 {
public static void main(String[] arg) {
int sum = 0, list = 0;
Scanner reader = new Scanner(System.in);
System.out.println("Type a postive integer if you enter zero the list is compelete");
int number = reader.nextInt();
do {
if (number > 0) {
sum += number;
list++;
} else if (number < 0) {
System.out.println("ERROR type in a postive integer");
}
reader.close();
} while (number != 0);
if (list != 0) {
System.out.println("Average is: " + sum / list);
} else
System.out.println("NO average");
}
}
最佳答案
您有两个问题,没有在循环中读取数字,而是在循环中关闭阅读器:
int number = 0;
do
{
number = reader.nextInt();
if (number>0)
{
sum+=number;
list++;
}
else if (number<0)
{
System.out.println("ERROR type in a postive integer");
}
}while (number!=0);
reader.close();
关于java - 我的Java代码有些麻烦。在循环中告诉正数和负数之间的差异时,它将不会运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55252282/