一:for循环案例面试题
public class TestForExecute {
public static void main(String[] args) {
int i=0;
for (printExecute("A");printExecute("B")&& i<2;printExecute("C")) {
i++;
System.err.print("D");
}
}
public static boolean printExecute(String var1){
System.err.print(var1);
return true;
}
}
ABDCBDCB
二:通过分析for循环执行流程得到结果
1).for循环的结构说明
for (初始化表达式;条件表达式;循环体执行之后的表达式){
循环体;
}
2).for循环的执行流程
①:首先会执行初始化表达式(只会执行一次)
②:其次会执行条件表达式,当条件表达式为true时,就会执行循环体,为false时,就会直接跳出循环
③:执行完循环体之后就会执行循环体执行之后的表达式
④:然后就会继续执行条件表达式->循环体->循环体之后的表达式,直到条件表达式不满足,跳出循环
3).对案例进行解析
①:printExecute(“A”)相当于初始化表达式,所以从始至终只会执行一遍,且是第一个执行的
②:printExecute(“B”)&&i<2,条件表达式,第二步执行,且i=0,满足条件
③:执行i++和打印D,然后执行循环体之后的表达式,即printExecute(“C”)
④:所以第一遍就是打印的 ABDC
⑤:然后第二遍直接执行条件表达式即printExecute(“B”)&&i<2,因为i++使i=1,满足条件
⑥:所以打印BDC,然后第三遍执行条件表达式,因为i=2,不满足条件,所以只执行了条件表达式的前面部分,即printExecute(“B”),因为i<2,不满足条件,所以不会执行循环体,所以最终结果就是ABDCBDCB