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');
} }}

解决方案 »

  1.   

    是这样的啊,for循环里,首先是执行初始化参数
    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循环的原理。正解。