嘿,我得到以下错误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);
}
}
答案 0 :(得分:1)
cijferStudent = input.nextInt();
应改为
cijferStudent[i] = input.nextInt();
错误是因为input.nextInt()
将返回一个int,但cijferStudent
是int
的数组,因此您无法将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
。