Re: [問題]什麼情況下,用do while會比while好啊?

看板java作者 (KITO)時間17年前 (2009/01/27 11:24), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《s66449 (閒泡菜)》之銘言: : 我到現在還是不太清楚,我看幾本書寫說 : do while最少能執行一次,有沒有什麼例 : 子是用do while會比while好啊? 再舉個最近我用到的例子好了 最近在寫個很兩光的parser 例如要讀取 input a,b,c; 那parser部份就寫成 do{ inputName = getName(); }while(getNextChar() == ','); 當GOTO的話在JAVA的確比較不會有這種需求 但在寫例如某些沒C++只有C compiler的時候 而且又有個人堅持不寫GOTO時(雖然是差不多啦= =" 而且不太強大XD 亦或是寫C++不喜歡try...catch時 用do{}while(false);來取代也是不錯的方案 不過...總之是遇到就會用到,先留在腦袋當工具吧:D 當初在學時也覺得啥叫至少會執行一次 實際上do...while, while也常常可以交替著用 端看你的設計或著是API的設計 例如上一篇抓資料庫的迴圈 在php中我的習慣寫法是 while($obj = mysql_fetch_object($result)){ ... ... } 上面的parser的例子也可以設計成另一種方式 將getName的函數改成吃一個參數,來存inputName 回傳一個bool代表有無下一筆 while(getName(inputName)){ ... } so...慢慢體會唄 不同style對於code的自我解釋能力不同 例如在抓資料庫中個人認為php的while版本比較簡潔而且清楚 而parser的do...while版就可以一目瞭然是怎麼運作的 端看個人喜好哩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.64.128.55
文章代碼(AID): #19VdvMEg (java)
文章代碼(AID): #19VdvMEg (java)