Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的数组操作出错_Java_Arrays - Fatal编程技术网

Java中的数组操作出错

Java中的数组操作出错,java,arrays,Java,Arrays,我试图找到Java数组中某些元素的总和。这个数组有5个元素,如果它的三个元素有相同的值,我希望求和 sum+=numrat[i]; 首先我按升序排列。然后放入if条件。 当我尝试执行此操作时,if条件行中出现错误 如果三个元素的值相同,有人能告诉我如何控制它们吗?这是我的代码: public int katerNjesoj() { int[]numrat=新的int[zar.length]; 对于(int i=0;i您无法比较“三倍”条件,您需要将其拆分为两个CHCK if((numrat[1

我试图找到Java数组中某些元素的总和。这个数组有5个元素,如果它的三个元素有相同的值,我希望求和

sum+=numrat[i];
首先我按升序排列。然后放入if条件。 当我尝试执行此操作时,if条件行中出现错误

如果三个元素的值相同,有人能告诉我如何控制它们吗?这是我的代码:

public int katerNjesoj()
{
int[]numrat=新的int[zar.length];

对于(int i=0;i您无法比较“三倍”条件,您需要将其拆分为两个CHCK

if((numrat[1] == numrat[2] && numrat[2] == numrat[3]) || (numrat[2] == numrat[3] && numrat[3] == numrat[4]) || (numrat[3] == numrat[4] && numrat[4] == numrat[5]))
作为旁注,
Array
索引是从0到数组大小-1,而不是从1到数组大小

if((numrat[0] == numrat[1] && numrat[1] == numrat[2]) || (numrat[1] == numrat[2] && numrat[2] == numrat[3]) || (numrat[2] == numrat[3] && numrat[3] == numrat[4]))
此外,无需在每次迭代中检查条件,可以对当前数组中的数字执行
true
false
。只需将
if
置于循环之外即可

if((numrat[0] == numrat[1] && numrat[1] == numrat[2]) || (numrat[1] == numrat[2] && numrat[2] == numrat[3]) || (numrat[2] == numrat[3] && numrat[3] == numrat[4])) {
    for(int i = 0 ; i < zar.length ; i++) {
        sum+=numrat[i];
    }
}
如果地图上有数字,我们将值增加1,如果没有,我们将数字添加到地图上,值为1。如果
hastree
为真,我们发现三个相等的值


当然,您可以将计数与检查相结合,如果
hastree
为true,则返回总和,否则返回0(根据您的逻辑);

您无法比较“三倍”条件,需要将其拆分为两个chck

if((numrat[1] == numrat[2] && numrat[2] == numrat[3]) || (numrat[2] == numrat[3] && numrat[3] == numrat[4]) || (numrat[3] == numrat[4] && numrat[4] == numrat[5]))
作为旁注,
Array
索引是从0到数组大小-1,而不是从1到数组大小

if((numrat[0] == numrat[1] && numrat[1] == numrat[2]) || (numrat[1] == numrat[2] && numrat[2] == numrat[3]) || (numrat[2] == numrat[3] && numrat[3] == numrat[4]))
此外,无需在每次迭代中检查条件,可以对当前数组中的数字执行
true
false
。只需将
if
置于循环之外即可

if((numrat[0] == numrat[1] && numrat[1] == numrat[2]) || (numrat[1] == numrat[2] && numrat[2] == numrat[3]) || (numrat[2] == numrat[3] && numrat[3] == numrat[4])) {
    for(int i = 0 ; i < zar.length ; i++) {
        sum+=numrat[i];
    }
}
如果地图上有数字,我们将值增加1,如果没有,我们将数字添加到地图上,值为1。如果
hastree
为真,我们发现三个相等的值


当然,您可以将计数与检查结合起来,如果
hastree
为真,则返回总和,否则返回0(根据您的逻辑);

您无法将三个数字与
numrat[1]==numrat[2]==numrat[3]
进行比较,因为第一次比较返回的是
布尔值,无法与第三个数字进行比较

换成

(numrat[1]==numrat[2] && numrat[2]==numrat[3])
除此之外,您只想在满足条件的情况下计算总和,因此循环应该在if语句中,而不是相反:

if ((numrat[0]==numrat[1] && numrat[1]==numrat[2])||(numrat[1]==numrat[2]&&numrat[2]==numrat[3])||(numrat[2]==numrat[3]&&numrat[3]==numrat[4]))
    for(int i=0;i<numrat.length;i++) {
        sum+=numrat[i];
    }
if((numrat[0]==numrat[1]&&numrat[1]==numrat[2])|;(numrat[1]==numrat[2]&&numrat[2]==numrat[3])|(numrat[2]==numrat[3]&&numrat[4]))

对于(int i=0;i您无法将三个数字与
numrat[1]==numrat[2]==numrat[3]
进行比较,因为第一次比较返回一个
布尔值,无法与第三个数字进行比较

换成

(numrat[1]==numrat[2] && numrat[2]==numrat[3])
除此之外,您只想在满足条件的情况下计算总和,因此循环应该在if语句中,而不是相反:

if ((numrat[0]==numrat[1] && numrat[1]==numrat[2])||(numrat[1]==numrat[2]&&numrat[2]==numrat[3])||(numrat[2]==numrat[3]&&numrat[3]==numrat[4]))
    for(int i=0;i<numrat.length;i++) {
        sum+=numrat[i];
    }
if((numrat[0]==numrat[1]&&numrat[1]==numrat[2])|;(numrat[1]==numrat[2]&&numrat[2]==numrat[3])|(numrat[2]==numrat[3]&&numrat[4]))

for(int i=0;i不应将if放入for循环,应将for循环放入if语句,并使用and(&&)运算符将其拆分为更多条件。不应将if放入for循环,应将for循环放入if语句,并使用and(&&&)运算符将其拆分为更多条件operatorok谢谢,但我如何控制其中3个是否具有相同的值,但使用numrat[I]而不是numrat[1],numrat[2]等?好的谢谢,但我如何控制其中3个是否具有相同的值,但使用numrat[I]而不是numrat[1],numrat[2]等?好的谢谢,但我如何控制其中3个是否具有相同的值,但使用numrat[I]而不是numrat[1],numrat[2]等?好的,谢谢,但我如何控制其中3个是否具有相同的值,但使用numrat[I]而不是numrat[1],numrat[2]等?