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');
}
}
}
请问输出结果是什么?并帮忙分析一下原因,小弟实在没搞明白

解决方案 »

  1.   

    就是考你for语句执行顺序 最后一次循环虽然条件不成立但还会输出一个B
      

  2.   

    ABDCBDCB
    初始值:foo('A');输出A
    条件:foo('B')&&(i<2);输出B
    满足:foo('D'); 输出D
    foo('C')) 输出C
    继续判断条件:输出B....
    这和for(int i=0;i<10;i++){
      System.out.print(..);
    }不一样吗~
      

  3.   

    第一次ABDC foo('C')循环末运行
    第二次BDC //foo('A')不再运行初始值
    第三次B i==2,不符合条件,跳出循环
      

  4.   

    汗  没注意到for循环  哎 基础不牢啊。。
      

  5.   

    A
    B
    D
    CB
    D
    CB
    #######
    TO 2楼的:
    这个题目没有到贱的地步吧?
      

  6.   

    ABDCBDCB
    就是考你for语句执行顺序 最后一次循环虽然条件不成立但还会输出一个B