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

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++)和這個對比一下就能看出來了,就是循環順序的問題。

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所以循環退出
添加回答
舉報