关于for (i=0;i<10;i++){if(i%2==0)continue;

cowmich 2012-02-09 10:24:38
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就停止了么
...全文
3165 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiceRice 2012-02-09
  • 打赏
  • 举报
回复
没错!
cowmich 2012-02-09
  • 打赏
  • 举报
回复
感谢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
MiceRice 2012-02-09
  • 打赏
  • 举报
回复
首先你要知道: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);

cowmich 2012-02-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 muye5 的回复:]
i++执行了
[/Quote]
当i=10后进入for i<10;i++ 继续执行?
可直接运行for (i=0;i<10;i++){}System.out.println(i);
得出的i=10
这两个得出的结果不一样?
muye5 2012-02-09
  • 打赏
  • 举报
回复
i++执行了

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧