請簡述以下兩個for 迴圈的優缺點

2022-08-27 08:09:07 字數 820 閱讀 6143

今天筆試時候遇到乙個問題,找到相似的。

for (i=0; i)

if(condition)

else

優點:程式簡潔

缺點:多執行了n-1次邏輯判斷,並且打斷了迴圈「流水線」作業,使得編譯器不能對迴圈進行優化處理,降低了效率。

優點:迴圈的效率高

缺點:程式不簡潔

看到網路上還有一種回答: 

前者:優點:程式簡潔

條件判斷出現在for裡面,意味著,即使我在dosomething()或dootherthing()這2個函式中改變了condition的值,for迴圈也能正確執行我的意圖,因為它在每次迴圈中都會重新檢測conditon的值並針對condition的值做不同動作,所謂以不變應萬變,這是難能可貴的.   

缺點:多執行了n-1次邏輯判斷,並且打斷了迴圈「流水線」作業,使得編譯器不能對迴圈進行優化處理,降低了效率。

如果condition一直未曾改變,我們可憐的if必須每次迴圈都判斷一下condition的真假.犧牲了執行時效率.

後者:優點:迴圈的效率高。只進行一次判斷,執行時效率高.適合那種condition的值不會改變的情況.

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

n較大時,建議採用後面這種寫法,由於前者老要進行邏輯判斷,打斷了迴圈「流水線」作業,使得編譯器不能對迴圈進行優化處理,降低了效率。

筆試題 簡述以下兩個for迴圈的優缺點

第乙個 for i 0 i 優點 程式簡潔 缺點 多執行了n 1次邏輯判斷,並且打斷了迴圈 流水線 作業,使得編譯器不能對迴圈進行優化處理,降低了效率。每一次迴圈裡都有比較,增加了程式空間複雜度 第二個 if condition else 優點 迴圈的效率高,相比第乙個複雜一點,但迴圈裡沒有比較,降...

兩個簡單的迴圈

1.create or replace procedure pro test 01 is begin for aa in select object name from test 01 loop insert into test 02 values aa.object name end loop e...

兩個for迴圈的優缺點

1 白盒測試 方法中的 檢查法需要重點考慮 的執行效率,閱讀以下兩個迴圈,回答問題1和問題2。迴圈1 for i 0 i 迴圈2 if condition for i 0 i 分析 前者 優點 程式簡潔 條件判斷出現在for裡面,意味著,即使我在dosomething 或dootherthing 這...