求教一道java基础题

这题为什么选A,求教详细原因,谢谢... 这题为什么选A,求教详细原因,谢谢 展开
 我来答
puguole
2014-10-02
知道答主
回答量:1
采纳率:0%
帮助的人:2.2万
展开全部
你就把它转换成这样的形式:
int i=0;
for(i=0①;i<2②;i++③){
i++;④

}
看这①-④部分,它执行的顺序是这样的,
a.执行①,然后执行②,判断i是否符合要求(i<2),不符合就结束,不再执行③和④,符合的话,就执行第b 步。
b.执行a步后,就执行④部分,然后执行③部分
c.①部分只执行一次,继续执行②④③这样的顺序,但要注意,如果②不符合要求,则就结束。
所以来看题:
1)首先i=0,然后进入到第八行,开始执行foo('A'),则输出A,继续执行foo('B‘),输出B,符合要求继续执行第9行,此时i=1,执行第10行,foo('D'),输出D,现在跳转到第8行,执行foo('C'),输出C。现在继续循环,但foo('A')不再执行,此时执行的是foo('B'),输出B,i=1符合要求(i<2),此时进入第9行,i=2,进行第10行,foo('D'),输出D,又跳到第8行,执行foo('C'),输出C,现在执行第八行的foo('B'),输出B,但此时i已经=2,不再符合要求,所以结束。所以输出的结果为ABDCBDCB。
给你解答,我的思路很清晰,没有半点混乱,你只要懂其运行顺序原理,自己写个for循环,还怕不懂吗?
给人帮助,无私奉献,不求回报!
anglewang98
2014-10-02 · TA获得超过535个赞
知道小有建树答主
回答量:420
采纳率:80%
帮助的人:276万
展开全部
这个是for循环的执行过程,for(A; B; C)
执行是第一次执行A, 之后判断B是否为true,如果为true 执行loop体,最后执行C,再判断B是否为true,这样循环,B为false,循环结束。并且表达式A & B必须先执行A, A为true才执行B。
所以这一题 foo函数返回的肯定是A
for循环语句中,首先执行先执行foo('A') 打印A,然后执行 foo('B')&(i<2), 打印A,此时i==0,所以为true, 然后执行循环体i++; i==1,执行foo(‘D’) 打印D,最后执行foo('C')打印C,之后执行foo('B')&(i<2)打印B返回true,然后执行循环体i++; i==2,执行foo(‘D’) 打印D,最后执行foo('C')打印C,之后执行foo('B')&(i<2)打印B返回false。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
落叶l无情
2014-10-02 · TA获得超过1417个赞
知道大有可为答主
回答量:1372
采纳率:0%
帮助的人:1390万
展开全部
for(1;2;3){4} 循环的流程:
1-->2(条件为真)-->4-->3-->2(条件为真)-->4-->3-->2...
-->2 (条件为假)-->退出循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanglei980823
2014-10-02 · TA获得超过103个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:75.3万
展开全部
看 for 循环内部实现机制: 先走第一个分号前的语句,再走中间的,然后运行for内部代码,最后执行第二个分号后的语句
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
独家客户
2014-10-02
知道答主
回答量:6
采纳率:0%
帮助的人:3万
展开全部
在for循环里面比如(int i = 0;i<3;i++),它是先执行第一项并且只执行一次,输出A然后判断第二个条件是否满足,输出B满足的话执行for循环内部语句,也就是输出D,之后执行foo(‘C’),输出C然后再判断是否满足条件,输出B循环初结果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
10duwang
2014-10-02 · TA获得超过184个赞
知道小有建树答主
回答量:273
采纳率:0%
帮助的人:72.3万
展开全部
这题主要考察for循环的执行顺序
你哪里不懂?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式