【发布时间】:2013-09-20 04:46:08
【问题描述】:
我的代码有问题。请帮我解决。当输入 q 时,程序应该退出并返回平均值。如果您输入 5 个数字,则可以正常工作。数组大小应为 20。代码如下:
import java.util.Scanner;
public class test{
public static void main(String[] args){
int x;
int count=0;
char q= 'q';
Scanner input = new Scanner(System.in);
int[] array = new int[5];
System.out.print("You have entered 0 numbers, please enter a number or q to quit:" );
while (input.hasNextInt()){
for (int i = 0; i < array.length; i++)
{
array[i] = input.next();
count++;
System.out.print("You have entered " +count+ " numbers, please enter a number or q to quit:" );
}
}
System.out.println("Average is " + Average(array));
}
public static int Average(int[] array) {
int sum = 0;
for (int i = 0; i < array.length; i++)
sum += array[i];
return sum / array.length;
}
}
【问题讨论】:
-
问题是什么?
-
你打电话给
input.hasNextInt()。q是整数吗? -
这就是问题所在,我知道 q 不是整数,但要让它全部工作我不知道。当输入 q 时,程序应该退出并返回平均值。
-
我还想补充一点,如果输入准确的 5 个整数,代码将运行并给出平均值,但如果或多或少 5,我会出错
-
你应该调用 while(input.hasNext()) 然后检查输入的输入是 char 还是 int 类型。如果找到 char 然后退出。