public class FooDemo
{
    static boolean foo(char c)
    {
System.out.print(c);
return true;
    }
    public static void main(String[] args)
    {
int i = 0;
for (foo('a'); foo('b') && (i < 2); foo('c'))
{
    i++;
    foo('d');
}
    }
}

解决方案 »

  1.   

    运行结果:a-b-d-c-b-d-c-b;
    函数就不解释了,无非就是传入一个字符,然后把这个字符打印出来并返回true而已。int i = 0;//初始化i=0;
    //下面的第一个foo("a");调用foo函数,这样会打印出来一个a,并且这里只会调用一次,例如平常写的i=0;只有第一次进入时起作用。
    //第二个foo('b');每次循环之前都会调用,哪怕这次不能进入for循环,所以他紧接a之后打印一个b。
    //第三个foo('c');每次进入循环并且执行完毕后调用,所以,如果进入循环肯定会调用它,如果没进入循环就不会调用它,跟上面的不一样哦,上面第二个foo会比这个多调用一次。
    //第四个foo('d');更简单了,只有进入for循环才会调用。
    for (foo('a'); foo('b') && (i < 2); foo('c'))
    {
      i++;
      foo('d');
    }所以调用结果如下:
    foo('a');只调用一次
    foo('b');会调用三次,i=0时一次i=1时i=2时各一次
    foo('c');会调用两次,i=0时和i=1时
    foo('d');同样调用两次,i=0和i=1
      

  2.   

    学了其他的东西,竟把简单的东西都忘记了还看错了>和<,怪不得我郁闷得慌