public class Test { public static void main(String[] args) { int i=2;
for(f('A');f('B')&&i<2;f('C')){
f('D');
}
} public static boolean f(char c){
System.out.println(c);
return true;
}
}
请高手帮我解释一下

解决方案 »

  1.   

    个人理解,这时一个for循环,执行循序如下:
    首先i=2, 然后执行for()循环,碰到f('A'),调用 f()函数
    输出A,然后返回一个ture, 也就是f('A')的值为1. 同理,f('B')也为1,然后f()函数打印B这时候for循环看起来是这样的for(1;1&&2<2;f('C')){}
    根据符号优先级,2<2先运算,为假0. for(1;,1&&0;f('C'){}. 也就是中间循环条件为假,所以
    f('C')和循环内部就根本不会走,程序结束。结论,这个程序只会输出 A和B, 是f('A')和f('B')输出的。
      

  2.   

    我debug的结果是:
    他执行了f('A')和f('B'),也就是打印出了A和B两个字母。
    然后就结束了。可能是因为f('B')&&i<2;这个表达式为false了。
    其实这就是一个普通的for循环。
    初始化了一个f('A'),然后对表达式f('B')&&i<2;进行判断,这个表达式相当于i<100如果为真就执行作用域里的内容。
    执行完作用域里的内容之后执行f('C')也就相当于i++
    你可以做个测试。把表达式f('B')&&i<2改为f('B')&&i==2  也就是永远都是true,这样会一直执行下去。
    控制台打印就内容应该是:
    先打印一个A然后是B然后是D然后是C
    接下来就是B,D,C无限循环下去了。
      

  3.   

    输出为A

    因为程序在执行过程中执行了f('A')为true;然后执行f('B')(true)和i<2(fasle),循环语句没有执行,所以只是输出了A和B的值
      

  4.   


    忘记说了 ,, 现在的代码只会打印出A和B  因为中间的表达式的值是false
      

  5.   

    不好意思,那里写错了
    public class Test {public static void main(String[] args) {int i=0;
    for(f('A');f('B')&&i<2;f('C')){、
    i++;
    f('D');
    }
    } public static boolean f(char c){
    System.out.println(c);
    return true;
    }
    }
      

  6.   

    应该就是输出A和B吧,2<2就会退出循环
      

  7.   

    记得每次循环后都要输出C,就这个比较容易遗漏。其次就是先判断f('B') ,再判断i<2。剩下的就是循环了,这种题细心地做就行了,呵呵。
      

  8.   

    三楼大大讲的很清楚了。
    abdcbdcb;先执行f('A')输出A;
    然后执行f('B')输出B;
    然后D。然后C;
    因为i++完为1继续执行。所以又出来BDC。然后i为2后面不执行了。只执行到f(‘B’)输出B;
    所以结果ABDCBDCB;感谢三楼的大大。我也刚学。按您的思路出来的。
      

  9.   


    先打印一个A然后是B然后是D然后是C
    接下来就是B,D,C无限循环下去了。
    详解请参考我3楼的回复、
      

  10.   

    这道题其实是考察for循环的运行顺序,先从初始化开始,然后条件表达式,其次for循环内部,最后增量;按照这个步骤执行操作,直到条件表达式为假退出。另外,注意条件表达式顺序。
      

  11.   

    循环控制条件f('B')&&i<2
    由于i = 2 , 故此可知该条件为假,
    所以直接就调用f('D'),即打印的是D
      

  12.   

    你对for循环的理解可能还不够,建议你看一下楼上各位的分析,不过还是谢谢了
      

  13.   

    你对for循环的理解可能还不够,建议你看一下楼上各位的分析,不过还是谢谢了
      

  14.   

    应该主要是对for循环的运行的顺序吧
      

  15.   

    晕倒,敲题要准确~
    输出:A B D C B D C B
      

  16.   

    A B D C B D C B 正解
    考的就是for循环的执行顺序嘛
      

  17.   


    jquery 做你的拖动图片很简单
    不知道你用什么做的
      

  18.   

    A,B到i<2这边就不执行了,因为这句不符合条件
      

  19.   

    好像是输出A
            B 因为i<2条件不允许
      

  20.   

    结果是先输出一个A然后是B然后是D然后是C
    接下来就是B,D,C无限循环下去了。
    因为循环控制变量始终不会变,循环条件永远为真
      

  21.   

    for(f('A');f('B')&amp;&amp;i<2;f('C')){、
    i++;
    f('D');
    }
    &amp是什么东东求解释
      

  22.   

    for循环:先进行初始化,接着判断条件,满足后执行{}内的内容,完了执行第三个表达式,接着回去判断……,当不满足条件后跳出。
      

  23.   

    原来是:A B 改版后是:A B D C B D C B
      

  24.   

    进入for循环,
    初始化f('A')->调用函数f(char c)->打印A->返回true
    f('B') ->f('B')->打印A->返回true 
    i < 2 ->2<2->返回false
    true && false ->循环结束
    输出结果:
    A
    B
      

  25.   

    结果谁都能给出来(用eclipse),重要的是给出思路和过程!
      

  26.   

    输出的结果应为
    A
    B
    D
    C
    B
    D
    C 后三个字母(BDC)循环下去
    因为&&个运算符的运算法则是只要左边为true就不会再计算右边,所以不管i<2的条件是true or false循环依旧进行,
      

  27.   

    还有要加上20楼说的for循环的语法规则。
      

  28.   

    该题是考查for语句的执行顺序
    for(f('A');f('B')&&i<2;f('C')){
      f('D');
    }
    首先执行f('A'),输出:A
    然后执行f('B')&&i<2,输出:B,i=2,所以为 false.
    结束。
      

  29.   

    主要是考察for循环的执行顺序。下面是例子,你看看了
    int print1(int i,int j)
    {        
        printf(" 执行判断条件,i=%d,j=%d ",i,j);
        return 1;
    }void main( )
    {
        int i = 0, j = 10;
        
        for(i=0;((print1(i,j)) && (i<j));
            i++,j--,printf("执行for()中的第三个语句,i=%d,j=%d ",i,j))
        {
            if(j==10)
            {
                printf("%d,%d ",i,j);
                j--;
            }
            j++;
            printf("执行for循环体中的最后一句,i=%d,j=%d ",i,j);
        }
        printf(" %d,%d ",i,j);
    }
      

  30.   

    个人意见正确结果是:ABDCBDCB
      

  31.   

    A
    B
    D
    C
    B
    D
    C
    B
    电脑亲测答案,csdn果然是卧虎藏龙呀!
      

  32.   

    这种面试题到底有何意义?我组里要是有人写出这么个for,我一定K他。代码是写给大家读的。
      

  33.   

    for (A;B;D)
    {
      C
    }B==true;第一次执行应该是ABCD,以后的循环都是执行BCD。
    B==false;第一次执行AB后,就直接退出了。 for(f('A');f('B')&&false;f('D'))
    {
    f('C');
    cin.get();
    } cin.get(); for(f('A');f('B')&&true;f('D'))
    {
    f('C');
    cin.get();
    } cin.get();
      

  34.   

    好久没编程了  看到了才想起来for循环是这样的。 就是ABDCBDCB
      

  35.   

    建议楼主了解for循环的执行原理就行了。这才是王道。for循环是开界的。它的一般形式为: for(<初始化>; <条件表达式>; <增量>) 语句; 初始化总是一个赋值语句, 它用来给循环控制变量赋初值; 条件表达式是一个关系表达式, 它决定什么时候退出循环; 增量定义循环控制变量每循环一次后 按什么方式变化。这三个部分之间用";"分开。 例如: for(i=1; i<=10; i++) 语句; 上例中先给 " i " 赋初值1, 判断 " i " 是否小于等于10, 若是则执行语句, 之后值增 加1。再重新判断, 直到条件为假, 即i>10时, 结束循环。
      

  36.   

    首先需要了解,for循环是怎么流程,for(int i =0; i <10;i++){}
    i=0只有在第一次循环的时候,会加载它,在判断i<10,第二次的时候,就不再走i=0,会先i++,在判断i<10
    所以,上面的结是AB
      

  37.   

    结果:ABDCBDCB
    改成while循环,就一目了然
    我是用VC,所以题目稍作改变,其中a是类的对象,则for循环改为如下while循环:
        a.f('A');
        while(a.f('B') && i<2)
        {
            ++i;
            a.f('D');
            a.f('C');
        }
      

  38.   

    我觉得应该是ABDCBDCB。这就是个for循环啊,然后函数调用啊。。个人看法,仅供参考
      

  39.   

    A
    B
    D
    C
    B
    D
    C
    B
    很简单的一个for循环啊!
      

  40.   

    AB
    先是初始化打印A,然后判断条件打印B,i不小于2不执行任何东西退出
      

  41.   

    很好的一道题,看似简单的,却体现了对for循环的执行流程的理解。
    for(A;B;C){
        D;
    }
    A: 初始化值
    B:条件判断
    D:执行体
    C:改变值                           1. do A
                                  |
        |--------------------->2. do B
        |                         | 
        |             ---------3. B == true ?--------
        |             |                             |
        |             | yes                         |no
        |             |                             |
        |         4a. do D                    4b. exit if B   
        |             |
        |         5.  do C
        |             |
        ---------------   
      

  42.   

    怎么连图都发不了
    http://hi.csdn.net/space-804440-do-album-picid-502122-goto-down.html
    http://hi.csdn.net/space-804440-do-album-picid-502122-goto-down.html
      

  43.   

    这种题能上首页??CSDN的编辑脑子被驴踢了??
    还有那么多说什么ABDCDSSDSDFS循环的
      

  44.   

    for循环执行流程:
    for(a;b;c)
    {
    d
    }
    第一步:先执行a,且a只被执行一次。
    第二步:执行b,如果b是true则执行d,且进入第三步;如果b是false则终止程序。
    第三步:执行c,返回第二步。
      

  45.   

    按照LZ更正的题目结果是:ABDCBDCB
    这道题主要还是考察for循环的执行方式~
      

  46.   

    就是 for ( 初始化; 判断 ; 判断为真后的处理 )
      

  47.   

    主要就是考察for语句:
    结果:
    A
    B
    D
    C
    B
    D
    C
    B
      

  48.   

    就是按普通的for循环执行  当执行到&&i<2的时候就不执行了 然后后面的就不执行了 所以只有a b
      

  49.   

    这是很基础的题目,想不到答的人这么多,其实明白for的执行顺序就没有问题了