1樓:nullptr
這兩的區別,就是半開半閉區間和全閉區間的區別,在C系這種風格的for語法結構下,常規使用的話,對於迴圈變數遞增的情況下,沒有任何區別,你只要確定你的寫法確實是迴圈了你想要的次數就可以(乙個團隊中最好也統一風格,避免閱讀不小心看錯了)。
遞減之類的話,有些時候需要考慮好,例如size_t型別遞減迴圈,如果按照下面這個寫法,是死迴圈的,因為無符號size_t型別永遠都大於等於0
for(
size_ti=
10;i>=0;
--i);//死迴圈
for(
size_ti=
10;i>0;
--i);//
這樣就不會
不過一般迴圈終止條件可能是個變數,也就是上面的9、10不一定就是確定的數值,可能是個表示式(比如在某個函式裡,某個函式引數控制了迴圈的次數),這樣的話就看具體引數的含義了,就是你希望不希望取到之類的。如果對整個過程比較明確的話,兩種寫法是沒有啥區別的,注意好邊界即可。
但各類程式語言中,預設的都是左閉右開的規則,例如python中:
fori
inrange(0
,10,1
)# 區間是[0, 10)步進是1
演算法中也是,相對而言,左閉右開是比較優雅的習慣。
為何STL中的容器和演算法都是用的左閉右開區間?
程式語言中for迴圈和while迴圈的深層區別是什麼?
寒風 看了一下,17年還有人答,我也湊個熱鬧,18年來答下根據我的理解,1 while適合用於狀態變化控制,說高大上點就是while適合做狀態機,而for僅僅是為了迴圈而迴圈 2 另外乙個區別,for迴圈一般都是這麼用的,for int i xx i3 和一有點類似,通常剛學程式的時候會告訴你應盡量...
程式設計中遇到不確定迴圈層數,如何解決?
完全沒看懂你給的程式跟下面的描述有什麼關係 如果想實現文字描述的demo裡的效果的話,可以這樣 用函式式的方法來寫,對於a裡的每個元素a1,計算它跟b的數乘然後求和,最後把這些和中大於等於2的數過濾出來 a 1,2 3 b 3,4,5 print filter lambdas s 2,map lam...
怎樣運用c語言中的for迴圈程式設計菱形
Big鐵鎚愛笨笨 兩個解法,都已實驗過。請看注釋理解 解法1 include int main for int i n 1 i 0 i for int i n 1 i 2 n 1 i 李展發 藏雲 include intmain for i 0 i 9 i puts a i return0 最正確的...