java吧 关注:1,266,925贴子:12,770,569
  • 1回复贴,共1

求解,为什么答案会是这样????

只看楼主收藏回复

题目:
public class AA {
static boolean foo(char c,int i) {
if(i==2){
System.out.print(c);
}else{
System.out.print('A');
}
return true;
}
public static void main(String[] args) {
int i=1;
for(foo('A',i);(i<=2)&&foo('B',i);foo('C',i)) {
++i;
foo('D',i);
}
}
}
输出结果为什么是这样的:AADCBAA
谁能详细讲解下它的执行顺序,谢谢了


1楼2015-10-07 12:30回复
    第一步,for循环初始化,foo('A',i),此时i = 1,打印A,
    第二步,for循环判断,foo('B',i),此时i = 1,打印A,
    第三步,for循环判断成立,执行循环体++i;然后i=2,再执行foo('D',i) 打印D,
    第四步,for循环第一次结束,执行for循环最后一块foo('C',i),此时i 依然为2,打印C
    第五步,for循环继续判断,
    后面的自己应该能明白了


    青铜星玩家
    百度移动游戏玩家均可认证(限百度账号),去领取
    活动截止:2100-01-01
    去徽章馆》
    IP属地:湖北2楼2015-10-07 12:57
    回复