public class TestFoo {
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'); }
}
}
java这题结果是?希望能解释下这程序。
答案:6 悬赏:0
解决时间 2021-02-03 09:40
- 提问者网友:余味
- 2021-02-03 06:50
最佳答案
- 二级知识专家网友:一场云烟
- 2021-02-03 08:12
ABDCBDCB
for第一个分号前赋初值
第一个分号后条件判断
第三个是增量
先调用A,判断B并且i=0 进入循环 i=1,调用D,增量调用C,在判断B并且I=1,进入循环 I=2 调用D,调用增加C,最后判断B 但I=2不满足I<2条件,跳出FOR循环,程序结束
for第一个分号前赋初值
第一个分号后条件判断
第三个是增量
先调用A,判断B并且i=0 进入循环 i=1,调用D,增量调用C,在判断B并且I=1,进入循环 I=2 调用D,调用增加C,最后判断B 但I=2不满足I<2条件,跳出FOR循环,程序结束
全部回答
- 1楼网友:陪衬角色
- 2021-02-03 14:43
for (foo('A'); foo('B') && (i < 2); foo('C'))
{ i++; foo('D'); }
是这样的逻辑顺序 for(1;2;4){3} 按1,2,3,4顺序执行;所有结果显而易见ABDCBDC I=0循环一次 i=1循环一次 最后因为小于2出去了
- 2楼网友:深街酒徒
- 2021-02-03 13:05
a,b, i=0
d i =1
c b i =1
d i=2
c i=2
b i=2 断开
输出是:ABDCBDCB
- 3楼网友:冷态度
- 2021-02-03 11:25
结果是:ABDCBDCB
执行顺序应该是:
foo('A')-->判断执行foo('B') && (i < 2)-->i++-->foo(''D)-->foo('C')-->foo('B') && (i < 2);-->i++--->foo('D')--->foo('C')-->foo('B') && (i < 2);条件不满足,结束。
- 4楼网友:夢想黑洞
- 2021-02-03 10:52
d
- 5楼网友:不服输就别哭
- 2021-02-03 09:44
第一次进去,由于for表达式的执行次序,foo('A')是首先执行。然后会执行foo('B').然后由于符合条件,会跳到下面执行i++;然后到foo('D').然后根据for()执行次序,先会执行foo('C').其次再执行foo('B')
所以答案为ABDCBDCB
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯