当前位置: 首页 > 知识库问答 >
问题:

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

卢作人
2023-03-14

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

进口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();
}

}

共有1个答案

常自强
2023-03-14

firstint[]ray={n};只是创建一个以0为元素的数组

它内部的逻辑永远不会执行<code>而(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

我建议你学习基础知识

 类似资料:
  • 我正在为一堂课做家庭作业。你必须计算这个月的工资。每次我尝试运行它时,它总是这样说:我如何修复它?线程“main”java.util.InputMismatchException中的异常 java.util.Scanner.throwFor(Scanner.java:864) at java.util.Scanner.next(扫描仪.java:1485) java.util.Scanner.ne

  • (更新的代码)无论出于什么原因,InputMismatchException的catch块无法正常工作。当代码抛出此错误时,catch块不会捕获它。有人知道为什么会这样吗?

  • 我对Scanner有一个问题,因为它似乎采用输入值类型并强制用户下次输入值为相同类型。我找不到此代码不起作用的任何原因,并给我一个InputMismatchException,因为我已经编写了一百万次这样的代码并且没有问题。 这个问题不仅仅是register()方法的问题,而是整个程序的问题,例如下面的代码: 如果其中一种方法(如 register)要求用户输入字符串,则 int user=inp

  • 当我尝试在错误代码下面运行但得到错误时,我也使用了“givenArray[i]=sc.next();或givenArray[i]=sc.nextLine();”但仍然失败。我尝试了许多不同的方法,但仍然得到相同的错误。似乎扫描仪无法读取数组我需要此代码的帮助,请提前谢谢。 提供的输入:输入第一个数组的长度:4并单击Enter, 输入第二个数组的长度:4并单击Enter, 输入第一个数组:2,3,4

  • 我正在做一个场景,我只想接受1或2作为输入,并且在输入另一个数字或输入无效时处理错误。为此,我正在做: 如果我添加在中,由于选项的范围在try内,它会给出一个错误。我希望它继续要求用户输入有效数字,即1或2,但如果我输入任何字符,它将进入并退出。

  • 节目: 当我输入更多的数字时,会抛出一个线程异常(线程“main”java.util.InputMismatchException中的异常) 输出: 输入您的选择:(选择0打印说明)4输入第一个要分割的数字:9999999999 异常发生...java.util.输入错误匹配异常:对于输入字符串:"9999999999" 输入您的选择:(选择0打印说明)异常线程主java.util.输入错误匹配异