Java的。为什么这个for循环不能正常工作

时间:2012-03-15 14:21:10

标签: java loops multidimensional-array for-loop

我有下一个for循环标题:

for ( int row = interval[intRow][_START_]; row <= interval[intRow][_END_]; row++ )

其中interval的类型/维int[15][5]intRow的值为1,_START__END_是常量,从0开始,结束1;

interval[intRow][_START_]返回1,interval[intRow][_END_]返回2

为什么地狱row只到1(所以只有一个循环而不是2个)?

我注意到,如果我把第二个条件或其他任何条件放在两个( ... )之间,那么它可以工作,它会循环两次。我的意思是:

for ( int row = interval[intRow][_START_]; row <= (interval[intRow][_END_]); row++ )

有没有人知道为什么会这样?我知道我可以把它们放在两个括号之间,但我想知道为什么这不起作用。

感谢。

EDIT1

<=而不是< ......我在开头做了一个错字。遗憾。

EDIT2

基本上这看起来像:

for ( int row = interval[1][0]; row <= interval[1][1]; row++ )

其中interval[1][0] == 1interval[1][1] == 2

3 个答案:

答案 0 :(得分:3)

循环1:1&lt; 2 - 好的 Loop2:2&lt; 2 - 不行

尝试&lt; =

答案 1 :(得分:1)

试过以下。

int[][] interval = new int [15][5];

int intRow = 1;
int _START_ = 0;
int _END_ = 1;

interval[intRow][_START_] = 1;
interval[intRow][_END_] = 2;

for ( int row = interval[intRow][_START_]; row <= interval[intRow][_END_]; row++ ) {

    System.out.println(row);
}

输出: 1 2

总结一下,它对我来说很好。这让我想知道是否正确设置了 interval [intRow] [_ END _]

尝试使用调试器或只是使用Sysouts来调试程序。

答案 2 :(得分:0)

你试着写这个吗?

for ( int row = interval[intRow][_START_]; row <= interval[intRow][_END_]; row++ )

还是这个?

for ( int row = interval[intRow][_START_]; row < interval[intRow][_END_] +1; row++ )