我尝试编译此程序时出错

时间:2018-02-18 17:38:45

标签: java

我对编程很新,但我正尽力学习。

所以,我一直在做这个小项目,程序要求用户输入一定数量的数字(n)然后,最后,程序会写出关于多少正,负,偶数和奇数取决于输入。

这是我的代码:

package zad14;

  import java.util.Scanner;

public class Zad14 {

  public static void main(String[] args) {

        int n;

        int totalEven = 0;
        int totalOdd = 0;
        int totalPositive = 0;
        int totalNegative = 0;

        int [] array;



        Scanner input = new Scanner (System.in);
        System. out.print ("Insert the amount of numbers: ");

        n = input.nextInt();

        array = new array [n];

        for (int i = 0; i < n; i++){
            System.out.print ("Enter the numbers: ");
             array [i] = input.nextInt();
        }



          for (int i = 0; i < n; i++) {  
            if ( array [i] <0) {
                totalNegative ++;

            }
             if (array [i] > 0) {
                totalPositive++;
            }
             if (array [i] %2 == 0) {
                totalEven++;

            }

             if (array [i] %2 == 1) {
                totalOdd++;  
            }
        }

        System.out.println ("Even numbers: " + totalEven);
        System.out.println ("Odd numbers " + totalOdd);
        System.out.println ("Positive numbers " + totalPositive);
        System.out.println ("Negative numbers: " + totalNegative);



        }
}

然后当我编译时,我收到以下错误:

"Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:864)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextInt(Scanner.java:2117)
    at java.util.Scanner.nextInt(Scanner.java:2076)
    at zad14.Zad14.main(Zad14.java:32)"

这里做错了什么?任何帮助将非常感激。顺便说一句,如果这意味着什么,我正在使用NetBeans。

3 个答案:

答案 0 :(得分:1)

这里的数组初始化不正确.. 只需用这个替换

 array = new int [n];

答案 1 :(得分:1)

这不是一个很大的问题。由于您使用了input.nextInt()。这意味着你除了下一个输入将是一个整数,并且java也将转换它。但是,如果输入不是Integer,那么它将抛出java.util.InputMismatchException。你需要做的只是检查输入是否是一个整数,如果它是转换它。否则显示别的东西

此外,您应该使用int[] array = new int[n]

初始化数组

答案 2 :(得分:0)

声明数组的语法错误:

是(对于整数数组):

    int array = new int[5];

和(对于字符串数组):

    String array = new String[5];

其中5是数组的大小。

在你的情况下是:

    int array = new int[n];