一道面试题,求解
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楼的:
这个题目没有到贱的地步吧?