我对编程很新,但我正尽力学习。
所以,我一直在做这个小项目,程序要求用户输入一定数量的数字(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。
答案 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];