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

解释一下这段代码的执行过程,考察for语句和静态函数
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');
}
  }
}


------解决方案--------------------
运行结果:a-b-d-c-b-d-c-b;
函数就不解释了,无非就是传入一个字符,然后把这个字符打印出来并返回true而已。
Java code

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');
}