int i=0;
for (i=0;i<10;i++){
if(i%2==0)
continue;
i=i+1;
if(i==5)
break;
}System.out.println(i);这里的i输出为什么是11,for中的i不是等于10就停止了么

解决方案 »

  1.   

    当i=10后进入for i<10;i++ 继续执行?
    可直接运行for (i=0;i<10;i++){}System.out.println(i);
    得出的i=10
    这两个得出的结果不一样?
      

  2.   

    首先你要知道:for ( A; B; C) 每次循环的规则是,先执行C,然后再判断B。然后再来看看循环的最后一次是什么情况:for (i=0;i<10;i++){
      if(i%2==0) // 此时i=9,不满足条件
        continue;
      i=i+1; // 执行后i=10
      if(i==5) // 不满足条件
        break;
    } // 然后再执行i++,即i=11 ; 接着判断 i<10,即不满足,退出循环
    System.out.println(i);
      

  3.   

    感谢ldh911的说明。
    如果是for循环之内 print(i)最大就是9吧
    for循环之外意思是循环结束再执行一次i++;再和i<10比较
    int i=0;
    for (i=0;i<10;i++)
    System.out.println(i);
    这段运行结果i是1到9
    int i=0;
    for (i=0;i<10;i++){}
    System.out.println(i);
    这段i运行结果就是10