public class HelloWorld{
public static void main(String []args){
int[] A={1,2,3,4,5,6},sum=0;
for(int i=2;i<=4;i++)
{
sum=(sum+A[i]);
}
System.out.println("the sum is"+sum);
}
}
错误:
HelloWorld.java:7: error: bad operand types for binary operator '+'
sum=(sum+A[i]);
^
first type: int[]
second type: int
2 errors
我知道代码适用于所有8种原始数据类型。但是为什么它不在这里工作?我的数组也是整数类型。
答案 0 :(得分:0)
sum
应该是int
,而不是int[]
。
更改
int[] A={1,2,3,4,5,6},sum=0;
到
int[] A={1,2,3,4,5,6};
int sum=0;
答案 1 :(得分:0)
sum
被声明为int[]
,请改为:
int[] A={1,2,3,4,5,6};
int sum = 0;
您可以在单个字段声明(JLS 8 § 8.3)中声明多个字段,但在这种情况下:
通过使用多个声明符,可以在单个FieldDeclaration中声明多个字段; FieldModifiers和UnannType适用于声明中的所有声明者。
即。该类型适用于声明语句中的所有字段。
您也可以在这样的语句中为变量名添加初始值设定项,但在您的情况下,第二个初始值设定项=0
与FieldDeclaration语句的类型不匹配,因此编译器不会&#39 ; t让你编译语句int[] A={1,2,3,4,5,6},sum=0;
。您的IDE可能会通过Type mismatch: cannot convert from int to int[]
之类的消息告诉您该错误,但您还没有看到它。
答案 2 :(得分:0)
您将sum
声明为int
的数组,但将其初始化为int值,这就是问题所在。
这一行不会编译
int[] A={1,2,3,4,5,6},sum=0;
应该是这样的
int A[]={1,2,3,4,5,6},sum=0;
或
int[] A={1,2,3,4,5,6};
int sum=0;
通过这样做,A
被声明为数组,sum
被描述为原始整数数据类型。
答案 3 :(得分:0)
int[] A={1,2,3,4,5,6},sum=0;
问题:
编译器将sum
视为整数数组,而不是int
。由于您在类型int[]
解决方案:
如果你写
,你会没事的int[] A={1,2,3,4,5,6};
int sum=0;
增强功能:
写sum=(sum+A[i]);
有一个简写符号可以简单地重写为
sum += A[i];
答案 4 :(得分:0)
正如您在完整的错误消息中所看到的那样:
对于参数类型int [],int
,运算符+未定义
您将A
和sum
定义为int[]
!
您必须更改为:
int[] A={1,2,3,4,5,6};
int sum=0;
答案 5 :(得分:-1)
您无法对int
值和array
求和。如果您希望代码运行,则必须将sum
声明为int
。
你的主要方法应该是:
public static void main(String []args){
int[] A={1,2,3,4,5,6};
int sum=0;
for(int i=2;i<=4;i++)
{
sum=(sum+A[i]);
}
System.out.println("the sum is"+sum);
}
答案 6 :(得分:-1)
由于此行,您的总和也属于int[]
类型。
int[] A={1,2,3,4,5,6},sum=0;
您必须像sum
那样int
int[] A={1,2,3,4,5,6};
int sum=0;