我试图测试2d阵列的范围值,但它保持循环

时间:2014-01-12 23:22:42

标签: java

我有3分组的12分。我想测试我的数组的12个点中的每一个是否在395和405之间。然后我想测试一组中的所有3个点是否低于400。如果然后输出消息,但我的代码不断循环。有人可以帮我查一下吗?

tempi=i;
tempx=x;
for( i=0;i<3;i++)
{
    for( x=0;x<4;x++)
    {
        if(rounded[i][x]<395 || rounded[i][x] >405)
        {
            System.out.println("there is an error with probes "+rounded[i][x]);
        }
        else if(values[i=0][x]< 400)
        {
            System.out.println("all points in element "+tempi+"as they are below 400 needs replaced("+"point "+tempx+" : "+values[i][x]+")");                       
        }
        else if(values[i=1][x]<400)
        {
            System.out.println("all points in element "+tempi+"as they are below 400 needs replaced("+"point "+tempx+" : "+values[i][x]+")");
        }
        else if(values[i=2][x]<400)
        {
            System.out.println("all points in element "+tempi+"as they are below 400 needs replaced("+"point "+tempx+" : "+values[i][x]+")");
        }
    }           
}

2 个答案:

答案 0 :(得分:2)

在这些行中,您将重新设置i的值。所以你永远不会退出循环是有道理的。

else if(values[i=0][x]< 400)
....
else if(values[i=1][x]<400)
....
else if(values[i=2][x]<400)

我认为你想要的是:

else if(i == 0 && values[i][x]< 400)
....
else if(i == 1 && values[i][x]<400)
....
else if(i == 2 && values[i][x]<400)

答案 1 :(得分:1)

在每次迭代中,你都在说

(values[i=0][x]< 400)

等,将i值分别重置为0,1和2。您可能想要使用i-0或i + 0。如果要检查是否相等,请使用==