错误:不兼容的类型:int []不能转换为int
问题描述:
我正在一个项目上工作,我不断地收到错误消息说错误:当试图编译时,incompatible types int []不能转换为int。错误说它是在第17行。我试图改变一切双打,我得到同样的错误双打。我不知道为什么这些数字无法存储,解释会很有帮助。错误:不兼容的类型:int []不能转换为int
int[][] houseNumbers;
int numberOfHouses, homeNumber, numberOfPeople, house, people;
System.out.print("How many houses in the street?: ");
numberOfHouses = keyboard.nextInt();
houseNumbers = new int[numberOfHouses][];
for (house = 0; house < houseNumbers.length; house++){
System.out.print("What is the next house number? : ");
houseNumbers[house] = keyboard.nextInt();
System.out.print("How many people live in house number" + houseNumbers[house] + ":");
numberOfPeople = keyboard.nextInt();
houseNumbers[house] = new int[numberOfPeople];
for (people = 0; people < houseNumbers[house].length; people++){
System.out.print("What is the age of person " + people + ": ");
houseNumbers[house][people] = keyboard.nextInt();
}
}
答
你有几个错误。最大的尝试是将int
分配给int
阵列。数组是一个(一个或多个)项目的块。您必须先分配new
块,然后才能访问各个项目。你的编译器告诉你这一点。学习理解编译器的错误和警告。
错误1:
/* houseNumbers[house] -> */ homeNumber = keyboard.nextInt();
错误2:
System.out.print("How many people live in house number" + /* houseNumbers[house] -> */ homeNumber + ":");
'houseNumbers [房子] = keyboard.nextInt();'分配一个'int'到'int'阵列。三行后,你做得正确。你可能想'numberOfPeople = keyboard.nextInt();'那里。 –
所以我做了:homeNumber = keyboard.nextInt(); houseNumbers [house] = homeNumber;并且我仍然得到相同的错误 – Mark
将int分配给int数组有什么问题? – Mark