code:
public class test
{
static boolean foo(char c)
{
System.out.print(c);
return true;
}
public static void main( String[] argv )
{
int i =0;
for ( foo(‘A‘); foo(‘B‘)&&(i <2); foo(‘C‘))
{
i++ ;
foo(‘D‘);
}
}
}for执行的顺序我就不多解释了。简单的带过 进入for循环的时候首先执行的是foo(‘A‘)这里输出A 其次执行foo(‘B’)输出B返回为真,判断I是不是小于2(i=0小于2)为真 执行i++; 执行foo(‘D’);输出D; 执行foo(‘C‘);输出C 第一次循环结束,开始第二次循环 第二次循环就不再执行foo(‘A’); 冲foo(‘B’)开始,输出B返回真,判断I是不是小于2(i=1小于2)为真 执行i++; 执行foo(‘D’);输出D 执行foo(‘C’)输出C 第二次循环结束 第三次开始 执行foo(‘B’)输出B返回真判断I是不是小于2(i=2不于2)为假循环结束 所以输出为ABDCBDCB
原文:http://blog.csdn.net/qianquan003/article/details/21180017