亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

高手給我講下下面這段代碼的最后的結果為什么是ABDCBDCB,我需要過程啊

高手給我講下下面這段代碼的最后的結果為什么是ABDCBDCB,我需要過程啊

守著一只汪 2023-04-20 19:15:41
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'); } } }
查看完整描述

3 回答

?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

for執行的順序我就不多解釋了。簡單的帶過
進入for循環的時候首先執行的是foo('A')這里輸出A
其次執行foo(‘B’)輸出B返回為真,判斷I是不是小于2(i=0小于2)為真
執行i++;
執行foo(‘D’);輸出D;
執行foo('C');輸出C
第一次循環結束,開始第二次循環
第二次循環就不再執行foo(‘A’);
沖foo(‘B’)開始,輸出B返回真,判斷I是不是小于2(i=1小于2)為真
執行i++;
執行foo(‘D’);輸出D
執行foo(‘C’)輸出C
第二次循環結束
第三次開始
執行foo(‘B’)輸出B返回真判斷I是不是小于2(i=2不于2)為假循環結束
所以輸出為ABDCBDCB


查看完整回答
反對 回復 2023-04-23
?
Helenr

TA貢獻1780條經驗 獲得超4個贊

循環的時候先調用foo('A')輸出A 然后看條件調用foo('B')輸出B 并且滿足了i<2 所以執行循環體內部的 就是i++ 調用foo('D')輸出D 下一步執行foo('C')輸出C 因為滿足循環條件,所以繼續執行foo('B')&&(i=1)<2,輸出B,滿足條件再次進入循環i++ 調用foo('D')輸出D,接著執行foo('C'),然后再判斷條件foo('B')輸出B&&(i=2)<2不成立 循環退出。輸出結果為ABDCBDCB
for(int i=0;i<2;i++)和這個對比一下就能看出來了,就是循環順序的問題。

查看完整回答
反對 回復 2023-04-23
?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

for ( foo('A'); foo('B')&&(i <2); foo('C')) 
在這循環中,第一個;號前面的條件始終只執行一次
所以首先打印A,然后會判斷第2個條件
會打印B,并且i<2所以執行循環里面的條件
打印D,退出循環,結果打出ABD
第2次循環首先打印C
因為for循環種第2次都是先執行第2個;后條件
好比for(int i=0;i<100;i++)他第2次是從i++開始執行;
然后判斷第一個;后的條件,滿足條件就執行代碼
所以打印BD
第3次先打印C,判斷條件打印B 因為i=2所以循環退出

 


查看完整回答
反對 回復 2023-04-23
  • 3 回答
  • 0 關注
  • 188 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號