關於For迴圈的學習

來源:互聯網
上載者:User

請比較下面兩個FOR迴圈的優缺點

 

1.for(i=1;i<N;i++)
{
  if(condition)
   dosomething();
  else
   dootherthing();
}

2.if(condition)
{
for (i=1;i<N;i++)
   dosomething()
}
else
{
for (i=1;i<N;i++)
    dootherthing()
}

 

解答:

其實這2段代碼的效率問題是差不多的,因為要判斷一個運算式的真假,幾乎不需要時間,重要的是:
前者:
優點:條件判斷出現在For裡面,意味著,即使我在dosomething()或dootherthing()這2個函數中改變了condition的值,For迴圈也能正確執行我的意圖,因為它在每次迴圈中都會重新檢測conditon的值並針對condition的值做不同動作,所謂以不變應萬變,這是難能可貴的.   
缺點:如果condition一直未曾改變,我們可憐的if必須每次迴圈都判斷一下condition的真假.犧牲了運行時效率.

後者:
優點:只進行一次判斷,運行時效率高.適合那種condition的值不會改變的情況.
缺點:由於只在一開始進行一次判斷,所以失去的改變condition的值的機會,也就是說,即使我在dosomething()中改變了condition的值為false,這個程式也不會改變它的判斷,它依然執行著dosomething()的迴圈.我們不能隨時更換我們需要進行的動作。這是犧牲了彈性.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.