请问这个程序的for怎么执行?

来源:百度知道 编辑:UC知道 时间:2024/05/05 22:02:55
import java.io.*;

public class last{
static boolean foo(char c){
System.out.println(c);
return true;
}
public static void main(String args[]){
int i=0;
for(foo('a');foo('b')&&(i<2);foo('c')){
i++;
foo('d');
}
}
}

运行结果:
a
b
d
c
b
d
c
b

/*
* for(1;2;3){
* 4;
* }
* 首先你要知道for的执行顺序,它的执行顺序为1,2,4,3
* 分析以上程序。
* 1:foo('a') 只在第一次执行
* 2:foo('b')&&(i<2)
* 3:foo('c')
* 4:i++;foo('d');
*
* 第一次执行:i=1,且foo('b')为true
* 所以会打印出 a b d c
* 第二次执行不会再执行1:foo('a'),所以先输出一个 b,i当前值为1满足条件,执行循环,输出 d
* 然后输出 c ,此时再次判断条件 输出 b 但i<2不满足,退出循环。
* 所以最后的结果为 a b d c b d c b
*
*
* */