public class JavaTest {</p><p>static boolean fun(char c) {<br />System.out.print(c);<br />return true;<br />}<br />/**<br /> * @param args<br /> */<br />public static void main(String[] args) {<br />// TODO Auto-generated method stub<br />int i = 0;<br />for (fun('A'); fun('B') && i < 2; fun('C')) {<br />i++;<br />fun('D');<br />}</p><p>System.out.println();<br />}</p><p>}
輸出結果:ABDCBDCB
理解:
1. i = 0,執行for迴圈,執行for的第一個條件fun('A'),輸出A,執行for迴圈的第二個條件,先執行fun('B'),輸出B,再判斷i < 2成立;則執行for迴圈裡面的i++; fun('D'); 輸出D,此時輸出結果為ABD。
2.再執行for迴圈的第三個條件fun('C'),輸出C,此時結果為ABDC。
3.i = 1,執行for迴圈,此時不再執行for迴圈的第一個條件,直接執行第二個條件Fun('B') && i < 2; 輸出B,此時輸出結果為ABDCB,條件成立,執行for迴圈裡面的i++; fun('D'); 輸出D,此時輸出結果為ABDCBD
4.再執行for迴圈的第三個條件fun('C'),輸出C,此時結果為ABDCBDC
5.i = 2, 執行for迴圈,執行第二個條件Fun('B') && i < 2; 先執行左側的Fun('B'),輸出B,此時結果為ABDCBDCB;再執行右側的i < 2為假,整個條件為假,退出for迴圈的執行。
所以,最終輸出結果為:ABDCBDCB