日期:2014-05-20  浏览次数:20738 次

问下面代码输出结果,并解释谢谢
public   class   Test   {
        public   Test()   {
        }
        public   static   boolean   foo(char   c)
        {
                System.out.println(c);
                return   true;
        }
        public   static   void   main(String[]   args)
        {
                int   i   =   0;
                for(foo( 'a ');   foo( 'b ')&&(i   <   2);   foo( 'c '))
                {
                        i++;
                        foo( 'd ');
                }
        }
}

------解决方案--------------------
a
b
d
c
b
d
b
随便写了一下,不知道对不对
------解决方案--------------------
a
b
d
c
b
d
c
b

for(初始化部分;循环条件;迭代部分){
循环体
}
执行for语句时,先执行初始化部分,这部分只会被执行一次,接下来计算作为循环条件的布尔表达式,
如果为true,就执行循环体,接着执行迭代部分,然后再计算循环条件,如此反复。
------解决方案--------------------
for(foo( 'a '); foo( 'b ')&&(i < 2); foo( 'c '))
{
i++;
foo( 'd ');
}

===〉
foo( 'a ');
for(i=0; i <= 2; i++;)
{
foo( 'b ');
if(i < 2)
{
foo( 'd ');
foo( 'c '));
}
}


转化成这样你可能就明白了