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

这里的for循环里的代码究竟什么意思啊
public class Test1 {
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');
}
}

}


------解决方案--------------------
这道题的意思应该是告诉你for循环执行的顺序是

首次进入for循环 执行 foo('A');然后判断foo('B') 为true 执行 foo('D');

进入下次循环前执行 foo('C') 再判断 foo('B') 。。。。。。
------解决方案--------------------
首先for循环里首先执行foo(‘A’)打印
然后执行f(‘B’)&&i<2 打印B 此时i=0,所以i<2成立
执行循环体的内容,即是i++ 和 foo(‘D’) 后
i=1 然后打印D
后面就是foo("C") 然后再再执行foo(‘B’)&&i<2
此时由于i=1 还是小于2的所以 所以循环体里的还要执行一次
然后i=2
接着还是上面那顺序 但是到i<2时 不成立 就退出循环了
所以打印就是:ABDCBDCB
这个只要知道for里面语句的执行顺序就可以了