本帖最后由 ameanboy 于 2016-3-17 22:59 编辑
- public class Test2 {
- static boolean foo(char c) {
- System.out.print(c);
- return true;
- }
- public static void main(String[] argv) {
- int i = 0;
- //for(65;88&&(i<2);67)
- for (foo('A'); foo('B') && (i < 2); foo('C')) {
- i++;
- foo('D');
- }
- }
- }
复制代码
请问输出结果是什么~~?回复里最好能写清楚执行顺序哦~
A. ABDCBDCB
B. ABCDABCD
C. 编译错误
D. An exception is thrown at runtime.
公布答案了!答案是A ABDCBDCB
- //输出结果是:ABDCBDCB
- 分析:FOR循环里面讲究的条件要为真,与你的判断式是什么没有关系
- 就像这里,虽然是打印的字母,但是却不是false,所以可以执行
- 第一次进行循环:
- foo('A')打印字母A,(注:这里不是false条件就默认为true条件)
- foo('B')打印字母B,i=0,比较(i < 2),条件为true,进行循环体,foo('D')打印D
- foo('C')打印字母C
- 第二次循环:
- foo('B')打印B,i=1,比较(i < 2)为true,进行循环体,foo('D')打印D
- foo('C')打印字母C
- 第三次循环:
- foo('B')打印字母B,i=2,比较(i < 2)为false,退出循环,得结果
- */
复制代码
|
|