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

一道面试题,求解
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 ');
}
}
}
请问输出结果是什么?并帮忙分析一下原因,小弟实在没搞明白

------解决方案--------------------
ABDCBDCB,考基本功的
------解决方案--------------------
就是考你for语句执行顺序 最后一次循环虽然条件不成立但还会输出一个B
------解决方案--------------------
ABDCBDCB
初始值:foo( 'A ');输出A
条件:foo( 'B ')&&(i <2);输出B
满足:foo( 'D '); 输出D
foo( 'C ')) 输出C
继续判断条件:输出B....
这和for(int i=0;i <10;i++){
System.out.print(..);
}不一样吗~


------解决方案--------------------
第一次ABDC foo( 'C ')循环末运行
第二次BDC //foo( 'A ')不再运行初始值
第三次B i==2,不符合条件,跳出循环
------解决方案--------------------
汗 没注意到for循环 哎 基础不牢啊。。
------解决方案--------------------
A
B
D
C

B
D
C

B
#######
TO 2楼的:
这个题目没有到贱的地步吧?