代码
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 循环语句的条件执行时机、循环条件的理解。
for (循环变量初始化 a; 循环判断条件 b; 循环变量迭代 c){
// 循环体
}
- 循环变量初始化语句 a:该语句在 for 循环开始前执行,且只执行一次,支持多条初始化语句,用逗号分开;
- 循环判断条件 b:是一个 boolean 表达式,为 true 时执行一次循环体,为 false 时结束循环;
- 循环变量迭代 c:实现对循环变量的迭代控制,执行完一次循环体之后执行。
从执行顺序上来看:a → b → c → b → c …
当执行第三次的时候,条件 &&(i<2) 不符合条件,循环结束,所以执行结果是:ABDCBDCB