我必须编写一个读取整数序列的程序,直到'停止'输入,将整数存储在一个数组中,然后显示输入的数字的平均值。输入“停止”时,我收到输入不匹配的异常。所以它并没有真正起作用,但我不明白为什么。非常感谢帮助。
import java.util.Scanner;
公共类MeanUsingList {
public void mean() {
String s;
int n = 0;
int i = 1;
int[] array = { n };
do {
System.out.println("Enter an integer");
Scanner in = new Scanner(System.in);
n = in.nextInt();
s = in.nextLine();
} while (s != "stop");
{
System.out.println("Enter an integer");
Scanner in2 = new Scanner(System.in);
int x = in2.nextInt();
array[i] = x;
i++;
}
int av = 0;
for (int y = 0; y < array.length; y++) {
av += array[y];
}
System.out.println(av);
}
public static void main(String[] args) {
MeanUsingList obj = new MeanUsingList();
obj.mean();
}
}
答案 0 :(得分:0)
首先int[] array = { n };
只创建一个数组,其中包含0作为元素。
其中的逻辑永远不会执行while (s != "stop");
你想要这样的东西
List list = new ArrayList();
//instead of array used arraylist because of dynamic size
do {
System.out.println("Enter an integer");
Scanner in = new Scanner(System.in);
n = in.nextInt(); //get the input
list.add(n); // add to the list
Scanner ina = new Scanner(System.in); // need new scanner object
s = ina.nextLine(); //ask if want to stop
} while (!s.equals("stop")); // if input matches stop exit the loop
System.out.println(list); // print the list
我建议你学习基础知识