黑马程序员技术交流社区
标题:
【华为面试题】for语句的执行顺序,你理解有多深?
[打印本页]
作者:
ameanboy
时间:
2016-3-17 16:34
标题:
【华为面试题】for语句的执行顺序,你理解有多深?
本帖最后由 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,退出循环,得结果
*/
复制代码
作者:
a302550641
时间:
2016-3-17 17:12
不明觉厉···
作者:
a7866443121
时间:
2016-3-17 18:03
不知所云{:3_65:}
作者:
蒋明洁
时间:
2016-3-17 18:23
看不懂!
作者:
monZhang
时间:
2016-3-17 22:18
for(表达式1;表达式2;表达式3){
语句;
}
执行顺序是 表达式1——表达式二——语句——表达式三——表达式2——语句——表达式3——表达式二.......(在每次表达式2都是true的情况下)
作者:
骓逝
时间:
2016-3-17 22:24
答案是A:ABDCBDCB
首先会执行for语句的第一条初始化语句foo('A'),打印出A这一句只会执行一次,然后走foo('B') && (i < 2)全是true打印出B,然后走{ i++;
foo('D');}里面的语句打印出D,然后再走for语句的最后一条foo('C')打印出C,然后再瞳判断语句foo('B') && (i < 2)也全是true,打印出B,再按上一次一样打印出D和C,此时i是2,再走判断foo('B') && (i < 2),fool('B')会打印出B,是true但是后面的i<2是false,所以会跳出for循环来了
作者:
向北_
时间:
2016-3-17 22:41
e.............
作者:
lxc358
时间:
2016-3-17 23:03
f先明白for循环各个表达式的特点:表达式1只执行一次,表达式2是条件判断语句判断是否进入循环体,表达式3是控制语句,执行完循环体再执行;
1》2》循环体》3》2?》循环体》3》2》结束
作者:
赵国政
时间:
2016-3-18 00:19
很厉害!
作者:
zhang3216858
时间:
2016-3-18 00:54
还没学到这个= =,不过快了
作者:
huanlong579
时间:
2016-3-18 01:16
顶一个,复习了下又
作者:
and4576sdo
时间:
2016-3-18 01:21
感觉不错啊
作者:
wl756071448
时间:
2016-3-18 09:04
又涨知识了,多谢分享
作者:
lijiy09
时间:
2016-3-18 11:19
看的有点晕了~
作者:
zx7660
时间:
2016-3-18 12:45
好吧...........
作者:
梦→拼搏
时间:
2016-3-18 13:06
涨知识了、
作者:
yijincheng
时间:
2016-3-18 20:23
华为两个字还真是吓死人呢。楼上的几个别还没看题就怂了。这题很简单的啊。
作者:
fei9ci
时间:
2016-3-18 21:29
涨姿势了,for的循环条件是讲究真否
作者:
caiyiq
时间:
2016-3-18 22:00
学习了,6666
作者:
ShallDoll
时间:
2016-3-18 22:14
好题目,先复制了慢慢看
作者:
Lee♥晓蕾
时间:
2016-3-30 17:29
作者:
ZTK12345
时间:
2016-3-30 22:58
还真是不明觉厉
作者:
oassuperhan
时间:
2016-3-30 23:14
外层for循环完全是干扰项,直接忽略就是了,其实这题不难的
作者:
452296824
时间:
2016-3-30 23:25
有点头晕。。。。。。。。。。
作者:
可可TKD
时间:
2016-3-31 20:34
厉害...............................
作者:
hong940619
时间:
2016-3-31 21:12
这也忒简单了吧
作者:
Vintagecheese
时间:
2016-3-31 21:16
赞一个 需要学习
作者:
yy0328
时间:
2016-3-31 22:58
一脸懵逼 两脸懵逼
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2