Re: 有關for 迴圈

看板java作者 (._.)時間19年前 (2006/10/26 09:14), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
單看 a++ <= 3 跟 ++a <= 3 這兩個部份. 如果你手邊有書的話, 理論上會說 ++ 在前或在後的差異. 如果沒說或叫你不要用, 那是因為不希望你冒不必要的風險產生非預期的結果 a++ <= 3 可以看成是 ++a <= 3 可以看成是 =================== =================== a <= 3; a = a + 1; a = a + 1; a <= 3; =================== =================== 上面的問題看起來很容易懂, 為什麼會說"冒不必要的風險產生非預期的結果"? 我只能說, 請問 a = (a++) + (a--); 何解? 請在腦袋中想一次, Code 跑跑看. 然後是否產生了預期的結果? 保證換了編譯器或 JVM 以後結果依舊嗎? 另外for的initial寫在( )內和先宣告的差別 對我比較重要的部份是在於那個變數會活多久, 有效範圍多大. 至於會有差異, 那就是某個地方有更動到數值, 但是你沒有預期到吧. ※ 引述《kimiyuan03.bbs@bbs.ee.ncku.edu.tw (kimi)》之銘言: : int a=1,b=10; : for(;a++<=3;b++) : {System.out.println("a="+a+"b="+b);} : 其輸出為 : a=2b=10 : a=3b=11 : a=4b=12 : 請問為何會有a=4這種情況呢? : 另一種.. : int a=1,b=10; : for(;++a<=3;b++) : {System.out.println("a="+a+"b="+b);} : 其輸出為 : a=2b=10 : a=3b=11 : 此差異之成因...? : 另..for的initial寫在( )內和先宣告的差別是..? : 小弟用for寫nested loop時..initial寫的位置不同.其輸出結果也差異甚大. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.25.148.49
文章代碼(AID): #15G0m9vP (java)
文章代碼(AID): #15G0m9vP (java)