Re: [問題] while迴圈問題?

看板java作者 (邀怪)時間15年前 (2009/03/08 00:30), 編輯推噓5(500)
留言5則, 5人參與, 最新討論串2/3 (看更多)
※ 引述《damon2506 (程程)》之銘言: : 請問在C中可以使用while(1){ : if(a>b) break; : } : 其中的while(1),是無條件執行,直到break為止. : 我是java新手,想請問java是否也有類似的語法? : 目前我只會: : int a=0; : while(a==0){ : if(a>b)break; : } : 請問在while()條件式內,是否有更好的寫法? : 謝謝!! 大部分人喜歡用 while (true) { .... } 但我比較喜歡 for (;;) { ... } 從 Java 語法的語意上來看, 這兩種寫法其實有一點小小的不同: while (true) 的 true 仍然是一個完整的 Java Expression, 是要運算然後測試結果的 boolean value, 只是剛好結果永遠固定. 而 for (;;) 的 (;;) 裡面完全沒有 Expression 需要運算, 也不需要測試. 換句話說, 其實是要靠 compiler optimization 把 while (true) 的 true 運算省略 才會得到跟 for (;;) 一模一樣的結果. 實務上, 最笨的 compiler 也會知道可以把 (true) 拿掉, 所以其實完全沒差, 但我自己就看 for (;;) { ... } 順眼一點 :P -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.132.21

03/08 00:53, , 1F
程式碼的語意也很重要阿 XD
03/08 00:53, 1F

03/08 01:09, , 2F
以前也是寫for(;;)但後來覺得;;很怪,就都寫成while(true)了
03/08 01:09, 2F

03/08 06:36, , 3F
同上,我也是 while(true) 一派的 :)
03/08 06:36, 3F

03/08 08:21, , 4F
while(true) 比較直覺易讀+1
03/08 08:21, 4F

04/24 01:54, , 5F
loop { ... }, RUBY 的語法。(戰)
04/24 01:54, 5F
文章代碼(AID): #19ig4fvA (java)
討論串 (同標題文章)
文章代碼(AID): #19ig4fvA (java)