qq_33676771 2016-06-22 09:16 采纳率: 25%
浏览 3261
已采纳

java基础循环(i=0;i<=5;i++)

for(int i=0;i<5;i++)
System.out.println(i);
输出的话i是等于5的,但是循环条件里i是小于5,请问下是不是碰到这种情况的话当i循环了第四次之后,发现下次循环会等于5了,就会跳过i<5,执行i++,然后再跳出循环,
所以i最后输出是等于5

  • 写回答

15条回答 默认 最新

  • 程序人生。 2016-06-22 10:39
    关注

    for 循环中的执行顺序错误理解如下:

    for(1;2;3){
    4
    }

    其实for循环中的顺序是这样的:
    for(0;1;3){
    2
    }
    其中,0为初始语句,只执行一次,
    然后进行1中的判断语句,判断true时执行{2},false就退出循环,
    2中如果没有终止语句(比如:return 和 break)的话,就执行3中的语句,如果有终止语句,则退出循环
    3执行完进入1判断 true执行2 false退出循环.
    需要注意的是,
    for(int i=0;i<5;i++)
    System.out.println(i);
    中 操作的变量i既是变量,又是操作内容
    所以在i=4的时候 4<5 ,执行System.out.println(i);再i++,此时i=5, i<5为 false,退出循环 ,结果应该是4,而最后其实i的值为5,因为还要执行i++
    而你的标题是for(int i=0;i<=5;i++)
    所以在i=4的时候 4<=5 ,执行System.out.println(i);再i++,此时i=5, i<=5为 true,继续循环 ,结果应该是5, 而此时i会继续执行i++,i最后的值为6,只不过最后退出循环体了而已

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(14条)

报告相同问题?

悬赏问题

  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)