[英]error: incompatible types: int cannot be converted to int[] & other errors
import java.util.Scanner;
public class BasketBallChart {
public static void main (String[] args) {
Scanner reader = new Scanner(System.in);
System.out.print("Enter the first names of the 5 players: ");
String nameString = reader.nextLine();
String[] name = nameString.split(" ");
for (int i = 0; i < 5; i++) {
System.out.print("Enter points earned by " +name[i]+ ": ");
int pL = reader.nextInt();
int p[i] = pL;
}
for (int j = 0; j < 5; j++) {
System.out.println(p[j]);
}
}
}
所以基本上第一部分要求用戶輸入 5 個玩家的名字(帶空格),然后我將其拆分為一個字符串數組。
我試圖制作的 for 循環,這樣我就不必放置 5 個單獨的 println 和輸入,所以它的行數會更少,看起來更干凈。 所以我試圖讓每個點都與 for 循環的運行次數相關聯,例如,如果“i”為 0,並且我在第一個輸入中輸入 Oliver 作為名字,name [0] 將是 Oliver,然后我希望它就像您在第一個 for 循環中輸入的點數將是 p[0] 因此與 Oliver 相關聯,因此它們都是 0。
我使用第二個 for 循環進行測試。
我不斷收到錯誤,我不知道為什么。
將您的代碼更改為
String[] name = nameString.split(" ");
int p[] = new int[5];
for (int i = 0; i < 5 && i < name.length; i++) { // also check name array length
System.out.print("Enter points earned by " +name[i]+ ": ");
int pL = reader.nextInt();
p[i] = pL;
}
這會將p
數組的聲明移動到for
循環的之前(和外部)。 我還添加了代碼來檢查循環不超過name
數組的長度。
正如@RolandIllig 下面所建議的那樣,數組p
最好命名為points
,而name
arrays 最好命名為names
- 提供反映其用法的變量名稱有助於更容易理解代碼。
在這里,您的代碼有兩個問題:
1)您需要在循環之前聲明 p 數組,例如int[] p = new int[5];
2) 然后在循環內部為每個數組元素賦值,如p[i] = pL;
3) 為了安全起見,請檢查name
數組的長度,例如if (name.length == 5)
public static void main(final String[] args) {
final Scanner reader = new Scanner(System.in);
System.out.print("Enter the first names of the 5 players: ");
final String nameString = reader.nextLine();
final String[] name = nameString.split(" ");
if (name.length == 5) {
final int[] p = new int[5];
for (int i = 0; i < 5; i++) {
System.out.print("Enter points earned by " + name[i] + ": ");
final int pL = reader.nextInt();
p[i] = pL;
}
for (int j = 0; j < 5; j++) {
System.out.println(p[j]);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.