最普通的java for循环

本文通过一个简单的算法案例探讨了for循环中条件判断的重要性。作者原以为两种写法效果相同,但在实际运行中发现,细微差别导致了完全不同的输出结果。这提醒我们在编程时不可忽视任何细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

是这么回事,平时写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反了)现在看来,很有问题!果然细节是不容忽视的~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值