Java int错误不能是int []

时间:2017-11-02 01:35:59

标签: java

嘿,我得到以下错误int不能int []我不明白:我

错误已开启 int [] cijferStudent = new int [7];并在while循环中。如果有人可以帮助我,我会很感激。

感谢您的帮助:)

package oefenopdracht6a;

import java.util.Scanner;

/**
 *
 * @author eazyman
 */
public class Oefenopdracht6a {

    public static Scanner input = new Scanner(System.in);
    public static int aantalCijfers = 0;

    public static void main(String[] args) {

        aantalCijfersGeroepen();
    }

    public static void aantalCijfersGeroepen() {
        System.out.println("Hoeveel cijfers wilt u invoeren?");
        aantalCijfers = input.nextInt();

        for (int i = 0; i >= aantalCijfers;) {
            System.out.println("Aantal cijfers moet groter zijn dan 0!");
            aantalCijfersGeroepen();
        }

        int i = 0;
        int[] cijferStudent = new int[7];
        while (i < aantalCijfers) {
            System.out.println("Cijfer student " + i);
            cijferStudent = input.nextInt();
            i++;
        }

        System.out.println(cijferStudent);

    }

}

2 个答案:

答案 0 :(得分:1)

cijferStudent = input.nextInt();

应改为

cijferStudent[i] = input.nextInt();

错误是因为input.nextInt()将返回一个int,但cijferStudentint的数组,因此您无法将int分配给int[]。但是,您可以将int分配给数组中的特定位置(在这种情况下,我猜测它将是i位置。

答案 1 :(得分:1)

除了丢失的索引,用户输入的每个负值 aantalCijfersGeroepen将被调用,并返回正数,因此数组要求输入N倍。所以分开询问和处理。

public static void main(String[] args) {
    aantalCijfersGeroepen();
    uitgaveAantalCijfers();
}

public static void aantalCijfersGeroepen() {
    System.out.println("Hoeveel cijfers wilt u invoeren?");
    aantalCijfers = input.nextInt();

    while (aantalCijfers <= 0) {
        System.out.println("Aantal cijfers moet groter zijn dan 0!");
        aantalCijfersGeroepen();
    }
}

public static void uitgaveAantalCijfers() {
    int[] cijferStudent = new int[7];
    for (int i = 0; i < aantalCijfers; ++i) {
        System.out.println("Cijfer student " + i);
        cijferStudent[i] = input.nextInt();
        //System.out.println(" " + cijferStudent[i]);
    }
    System.out.println(Arrays.toString(cijferStudent));
}

阵列的打印也必须在循环中完成, 或使用方便的功能Arrays.toString