package com.tkl;class TestJ { 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');
} }}
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');
} }}
foo('A');所以是输出A,
再进行条件判断foo('B'),输出B,而后条件成立
i变成1了,在调用foo('D'),输出D,
for循环后第一件事就是改变条件,执行foo('C'),输出C
再来判断条件 foo('B') && (i < 2),输出B,i=1故条件还是
成立,继续循环i现在是2了,调用foo('D'),输出D。
再次执行改变条件,执行foo('C'),输出C。
再进行条件判断foo('B') && (i < 2)输出B,
而i=2.条件不成立,跳出循环。
故结果就是:ABDCBDCB搞清for循环的原理。正解。