作者akasan (KITO)
看板java
标题Re: [问题]什麽情况下,用do while会比while好啊?
时间Tue Jan 27 11:24:05 2009
※ 引述《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