Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 理解简单程序中的输入不匹配异常有困难_Java_Do While_Inputmismatchexception - Fatal编程技术网

Java 理解简单程序中的输入不匹配异常有困难

Java 理解简单程序中的输入不匹配异常有困难,java,do-while,inputmismatchexception,Java,Do While,Inputmismatchexception,我必须编写一个程序,在输入“stop”之前读取一系列整数,将整数存储在数组中,然后显示输入的数字的平均值。我在输入“停止”时遇到输入不匹配异常,所以它实际上不起作用,但我不知道为什么。非常感谢您的帮助 导入java.util.Scanner 公共类含义列表{ public void mean() { String s; int n = 0; int i = 1; int[] array = { n }; do { System.out.

我必须编写一个程序,在输入“stop”之前读取一系列整数,将整数存储在数组中,然后显示输入的数字的平均值。我在输入“停止”时遇到输入不匹配异常,所以它实际上不起作用,但我不知道为什么。非常感谢您的帮助

导入java.util.Scanner

公共类含义列表{

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();
}
public void mean(){
字符串s;
int n=0;
int i=1;
int[]数组={n};
做{
System.out.println(“输入整数”);
扫描仪输入=新扫描仪(系统输入);
n=in.nextInt();
s=in.nextLine();
}而(s!=“停止”);
{
System.out.println(“输入整数”);
扫描器in2=新扫描器(System.in);
int x=in2.nextInt();
数组[i]=x;
i++;
}
int av=0;
对于(int y=0;y

}第一个
int[]数组={n}仅创建一个数组,其中的元素为0

当(s!=“停止”)时,它内部的逻辑永远不会执行

你想要这样的吗

    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
我建议您学习基础知识

您的程序获取“stop”并尝试将其转换为无法完成的int。也许你应该使用
扫描仪#hasnetint()
。另外,作为补充说明,您不应该像现在这样每次迭代都要制作一个新的扫描仪。打印提示,创建新扫描仪,打印提示,创建新扫描仪,打印提示,创建新扫描仪。。。