看看有几个人能把正确答案写出来,题目如下:public class Test{

public static boolean print(char chr){
System.out.println(chr);
return true;
}

public static void main(String[] args){
int i= 0;

for(print('A');print('B')&&i<2;print('C')){
print('D');
}
}
}

解决方案 »

  1.   

    晕,题目发错了,少了个条件。
    现在重发:public class Test{

    public static boolean print(char chr){
    System.out.print(chr);
    return true;
    }

    public static void main(String[] args){
    int i= 0;

    for(print('A');print('B')&&i<2;print('C')){
    print('D');
    i++;
    }
    }
    }
      

  2.   

    为啥不是:ABDCBDCBD?
    for(1;2;3)循环中的3个条件顺序不是这样的吗:先1,2;然后3,2,然后3,3这样的循环么》?
      

  3.   

    i=0:ABDC
    i=1: BDC
    i=2: B  这里条件就不满足了,不会执行循环体了
      

  4.   

    这是在考察&&  它是短路与啊  因为print('B')&&i<2中 print('B')永远是true 所以i<2根本就没有执行
      

  5.   

    for(1,2,3)
    {
        4
    }
    循环过程为  1243 243 243 243  243 直到2不满足就退出了
      

  6.   

    ABDCBDCBi=0;先AB在D
    i=1;先CB在D
    i=2;CB
      

  7.   

    很好很强大!ABDCBDCB  我看到答案才能慢慢理解,自己想会想错掉!基础的东西确实要多看!
      

  8.   


    for(1,2,3) 

        4 

    相当于
    1;
    while(2){
    4;
    3;
    }
      

  9.   

    经过调试,得出的准确过程为:
    i=0时,为ABD
    i=1时,为CBD
    i=2时,为CB
      

  10.   

    和优先级啥的都没关系,就是for循环执行的问题,只要了解了for的执行就明白了,
    for循环执行时,初始化只执行一次,然后判断条件,执行循环体,循环体结束,然后执行第二个分号后的操作,再判断,再执行循环体,再执行第二个分号后的操作,再判断,再执行循环体直到循环结束
      

  11.   

    很无聊的面试题啊其实
    for(print('A');print('B')&&i<2;print('C')){
     print('D');
     i++;
    }
    等价于print('A');
    while (true) {
     if (!(print('B') && i < 2)) {
      break;
     }
     print('D');
     i++;
     print('C');
    }