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');
}
}
}
{
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');
}
}
}
函数就不解释了,无非就是传入一个字符,然后把这个字符打印出来并返回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