亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

測試循環在頂部還是底部?(while vs. while while)

測試循環在頂部還是底部?(while vs. while while)

當我在大學(80年代中期)上CS時,不斷重復的想法之一就是總是編寫循環,在測試的頂部(while ...)而不是底部(do ... while)進行測試。環。這些概念通常以研究為依據,這些研究表明,在頂部進行測試的循環比在底部進行測試的循環更可能是正確的。結果,我幾乎總是寫在最上面測試的循環。如果它在代碼中引入了額外的復雜性,我不會這樣做,但是這種情況似乎很少。我注意到有些程序員傾向于幾乎完全編寫在底部進行測試的循環。當我看到類似的構造:if (condition){    do    {       ...    } while (same condition);}或反數(if在里面while),這使我想知道他們是否實際上是這樣寫的,或者if當他們意識到循環不處理空值情況時是否添加了語句。我已經進行了一些谷歌搜索,但是未能找到有關該主題的任何文獻。你們(和女孩)如何編寫循環?
查看完整描述

3 回答

?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

我始終遵循以下規則:如果它應該運行零次或多次,請在開始時進行測試;如果它必須運行一次或多次,請在最后進行測試。我看不到使用您在示例中列出的代碼的任何邏輯原因。它只會增加復雜性。


查看完整回答
反對 回復 2019-12-04
?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

如果要在循環的第一次迭代之前測試條件,請使用while循環。


當您要在運行循環的第一次迭代后測試條件時,請使用do-while循環。


例如,如果您發現自己正在執行以下兩個片段之一:


func();

while (condition) {

   func();

}


//or:


while (true){

    func();

    if (!condition) break;

}

您應該將其重寫為:


do{

    func();

} while(condition);


查看完整回答
反對 回復 2019-12-04
?
DIEA

TA貢獻1820條經驗 獲得超2個贊

避免do/ while確實有助于使我的代碼更具可讀性嗎?


沒有。


如果使用do/ while循環更有意義,請這樣做。如果需要在測試條件之前執行一次循環主體,則do/ while循環可能是最直接的實現。


查看完整回答
反對 回復 2019-12-04
  • 3 回答
  • 0 關注
  • 723 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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