Re: [問題]什麼情況下,用do while會比while好啊?
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):