有点不明白这个for循环。
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++这里?
------解决方案--------------------for循环三个元素,第一个是初始值,第二个是条件判断,第三个是条件改变。
顺序是这样的,第一次进入循环时,先初始值(1),然后进行条件判断(2),如果满足,则进入循环内,循环内执行完了,再回到条件改变(3),然后再进行条件判断(2),满足进入,不满足,条件改变(3),如果此循环。楼主不要怀疑程序,事实它就是这样运行的。
------解决方案--------------------先执行for的前两个个foo,然后i++,再执行内部foo,再执行for的第三个foo('C')