最普通的java for循环

我确实没有想到,会栽倒在这里,好吧,其实是根本没有想到这里来,今天心血来潮,想刷刷算法,第一个挺简单,但是结果出来却和预期不一样。

是这么回事,平时写for循环的时候是这样子的:

int arrray[]=new int[]{1,2,3};
for(int i=0;i<array.length;i++)
for(int j=0;j<array.length;j++){
      if(i!=j)
        System.out.println(" "+i+" "+j);
}


可是某一瞬间让猪油蒙了心,我写成这样的:

for(int i=0;i<array.length;i++)
  for(int j=0;j<array.length&&i!=j;j++)
        System.out.println(" "+i+" "+j);

看着区别不大,然而前者的输出是这样的:

0 0
0 1
0 2
1 0
1 1
1 2
2 0
2 1
2 2

后者是这样的:快哭了

1 0
2 0
2 1

后者每当i=j之后,是不会不会不会继续继续继续往后执行的!

嗯,检查的时候我以为我的循环写的是对的,所以在输出看看的时候,我是很不屑的,这怎么会错!!后来?!后来就实力打脸了难过

我突然好像记起来,以前出现过这种问题,结果正确就没有多想(只是顺序i,j反了)现在看来,很有问题!果然细节是不容忽视的~~

猜你喜欢

转载自blog.csdn.net/xlm11/article/details/52042448