有点不明白这个for循环。

u010179812 2014-03-27 10:38:51
public class Test
{
static boolean foo(char c)
{
System.out.print(c);
return true;
}
public static void main(String[] argv)
{
int i = 0;
for (foo('A'); foo('B') && (i < 2); foo('C'))
{
i++;
foo('D');
}
}
}


得到的结果是ABDCBDCB
好像是for中先执行foo('A'),再执行 foo('B') && (i < 2);,再进入循环体的结果。但我怎么觉得应该是先foo('A')就应该进入循环体执行i++;与 foo('D')呀。比如for(i=0; i<2; i++)吵就是执行了i=0后就进入下面的代码块吗?然后再到i++这里?
...全文
130 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010179812 2014-03-27
  • 打赏
  • 举报
回复
嗯,谢谢楼上两位解答,明白了。
bdmh 2014-03-27
  • 打赏
  • 举报
回复
先执行for的前两个个foo,然后i++,再执行内部foo,再执行for的第三个foo('C')
momoyssy 2014-03-27
  • 打赏
  • 举报
回复
for循环三个元素,第一个是初始值,第二个是条件判断,第三个是条件改变。 顺序是这样的,第一次进入循环时,先初始值(1),然后进行条件判断(2),如果满足,则进入循环内,循环内执行完了,再回到条件改变(3),然后再进行条件判断(2),满足进入,不满足,条件改变(3),如果此循环。楼主不要怀疑程序,事实它就是这样运行的。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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