第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

代碼可讀性: 避免do/while 循環(huán)

代碼可讀性: 避免do/while 循環(huán)

搖曳的薔薇 2019-04-13 08:46:17
在看,作者提到要避免do/while循環(huán):What’sweirdaboutado/whileloopisthatablockofcodemayormaynotbereexecutedbasedonaconditionunderneathit.Typically,logicalconditionsareabovethecodetheyguard—thisisthewayitworkswithif,while,andforstatements.Becauseyoutypicallyreadcodefromtoptobottom,thismakesdo/whileabitunnatural.Manyreadersendupreadingthecodetwice.但do/while有時候也很適用一些場景,比如前兩天我在一個問題里回答:do{result=msgrcv(id,(void*)&msg,sizeof(msg.text),msgtyp,MSG_NOERROR);}while(result==-1&&errno==EINTR);我們至少需要做一次msgrcv,然后判斷出錯情況是否需要循環(huán).這里do/while就非常適合.問問大家的看法.
查看完整描述

2 回答

?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

存在即合理,雖然一般情況下用到do/while循環(huán)的時候很少,但有時候用用也無妨。
其實do/while完全可以由while/do來代替,當然得配合定義function才會比較簡捷,比如
//No.1
do{
c=func();
}while(c);
可以換成
//No.2
c=func();
while(c){
c=func();
}
然后被一些懶牛改寫成
//No.3
while(func()){}
相比之下No.2煩瑣,No.3晦澀,還是No.1好懂些。
當然也有人會寫成
do{}while(func());
一樣晦澀,還多寫幾個字。
如果說do{...}中的語句比較多的情況……還是老辦法,封裝成function就能解決,一目了然。要是覺得不清楚函數(shù)在干啥,還可以在語句塊里寫句注釋。
當然,也有人不喜歡用while循環(huán)的,所以就用for循環(huán)解決了
for(c=func();c;c=func()){}
或者更ZUO的
for(;;){
if(func()){
break;
}
}
當然,while/do或者do/while也可以寫成死循環(huán)由條件判斷break這種形式。
總的來說,語法提供了,邏輯沒得錯誤,自己寫著舒服,大家都看得懂——那就用唄!
                            
查看完整回答
反對 回復 2019-04-13
  • 2 回答
  • 0 關注
  • 383 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號