Re: [問題] while迴圈問題?
※ 引述《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
03/08 00:53, 1F
推
03/08 01:09, , 2F
03/08 01:09, 2F
推
03/08 06:36, , 3F
03/08 06:36, 3F
推
03/08 08:21, , 4F
03/08 08:21, 4F
推
04/24 01:54, , 5F
04/24 01:54, 5F
討論串 (同標題文章)