错误:不兼容的类型:无法将int转换为int[]&;其他错误 import java.util.Scanner; 公开课篮球图{ 公共静态void main(字符串[]args){ 扫描仪阅读器=新扫描仪(System.in); System.out.print(“输入5名玩家的名字:”); 字符串nameString=reader.nextLine(); String[]name=nameString.split(“”); 对于(int i=0;i

错误:不兼容的类型:无法将int转换为int[]&;其他错误 import java.util.Scanner; 公开课篮球图{ 公共静态void main(字符串[]args){ 扫描仪阅读器=新扫描仪(System.in); System.out.print(“输入5名玩家的名字:”); 字符串nameString=reader.nextLine(); String[]name=nameString.split(“”); 对于(int i=0;i,java,arrays,for-loop,Java,Arrays,For Loop,基本上,第一部分要求用户输入5个玩家的名字(带空格),然后我将其拆分为一个字符串数组 for循环,我试图使它,这样我就不必把5个单独的println和输入,所以它会少线,看起来更干净。 所以我试着让每个点都和for循环的运行次数相关联,比如说,如果“I”是0,我在第一个输入中输入了Oliver作为名字,那么名字[0]就是Oliver,我希望它就像你在第一个for循环中输入的点数是p[0]因此与奥利弗联系在一起,他们都是0 我使用第二个for循环进行测试 我不断收到错误,我不确定原因。将代码更改为

基本上,第一部分要求用户输入5个玩家的名字(带空格),然后我将其拆分为一个字符串数组

for循环,我试图使它,这样我就不必把5个单独的println和输入,所以它会少线,看起来更干净。 所以我试着让每个点都和for循环的运行次数相关联,比如说,如果“I”是0,我在第一个输入中输入了Oliver作为名字,那么名字[0]就是Oliver,我希望它就像你在第一个for循环中输入的点数是p[0]因此与奥利弗联系在一起,他们都是0

我使用第二个for循环进行测试

我不断收到错误,我不确定原因。

将代码更改为

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]);
        }
    }
}
String[]name=nameString.split(“”);
int p[]=新int[5];
对于(int i=0;i<5&&i
这将把
p
数组的声明移动到
for
循环的前面(和外面)。我还添加了代码来检查循环是否超过
name
数组的长度


正如@RolandIllig在下面所建议的,数组
p
最好被命名为
,而
名称
数组最好被命名为
名称
——给出反映其用法的变量名称有助于更容易理解代码。

这里您的代码有两个问题:

1) 您需要在循环之前声明p的数组,如
int[]p=newint[5]

2) 然后在循环内部为每个数组元素赋值,如
p[i]=pL

3) 为了安全起见,请检查
name
数组的长度,如
if(name.length==5)

publicstaticvoidmain(最终字符串[]args){
最终扫描仪阅读器=新扫描仪(System.in);
System.out.print(“输入5名玩家的名字:”);
最后一个字符串nameString=reader.nextLine();
最终字符串[]name=nameString.split(“”);
如果(name.length==5){
最终整数[]p=新整数[5];
对于(int i=0;i<5;i++){
System.out.print(“输入“+name[i]+”:”)获得的分数;
final int pL=reader.nextInt();
p[i]=pL;
}
对于(int j=0;j<5;j++){
系统输出println(p[j]);
}
}
}

此处声明INTP[5]将引发编译错误。我认为您需要更新该声明。您还应该将
name
重命名为
names
,并将
p
重命名为
points
,以使代码更具表达力。由于Oliver是初学者,您应该解释您根据他的代码更改了什么,以及为什么更改。现在你的答案是代码,正如你所知,这是不鼓励在这个网站。
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;
}
    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]);
      }
    }

  }