虽然知道它为什么不出错 .但是不明白它输出的结果,它的运行过程是什么.
public class Demo_8_0 {
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');
}
}
}答案是  ABDCBDCB

解决方案 »

  1.   

    for(启始;条件;启始点是否加或减) 
      

  2.   

    for循环 每次都要++  如果按这样的话 哪应该是ABCDBCDB的哦
      

  3.   

    例如:
    int i=0;for(int j=0;j<4&&i<2;j++){}第一次进for  j=0; ==>  foo('A')  结果A  j<4 i=0 <2 true ==> foo('B') 结果Bi++ i=1;foo('D')  结果D第二次 进for  j++    ==>  foo('C')  结果C j=1 j<4 true  ==>  foo('B')  结果Bi=1 i<2 true i++ i=2;foo('D')    结果D第三次 进forj++    ==>  foo('C')  结果Cj=1 j<4 true  ==>  foo('B')  结果Bi=2 i<2 false 不执行了,跳出for 
      

  4.   

    A:for循环初屎化变量,所以执行;前的那一句,foo('A')
    B:判断for循环条件是否为真,当然就执行foo('B')
    D:进入循环,i++后变为1。然后执行foo('D')
    C:第1次循环结束,执行循环变量变化的操作,也就是for括号里最后的部分,foo('C')
    B:再次判断是否满足第2次循环的条件,首先还是执行foo('B'),为真,则再看后面的条件,由于i=1,比2小,所以继续执行。
    D:循环里的foo('D')
    C:同上
    B:再次判断是否满足第3次循环条件,执行foo('B'),然后i已经为2,不没满足条件,程序退出
      

  5.   

    其实这很简单,for循环中间的那个逻辑表达式是判断条件,只要满足条件就可以执行,楼上说的很详细。