內外迴圈程式設計規範

2021-08-15 11:00:34 字數 550 閱讀 3517

最近聽朋友偶爾聊起了這個話題,說是內層迴圈和外層迴圈次數相差比較大的情況下次數多的放在內還是外迴圈,哪個更優?

舉個栗子:乙個巢狀迴圈,乙個迴圈100次,乙個迴圈1w次,那麼是外層100呢還是1w呢?哪個更好?

答案是外層100,內層1w更優。

目的:減少cpu迴圈的切入次數

這裡簡單說下吧,在計算機程式設計的基層,偏機器語言彙編中,在迴圈中需要迴圈命令rep和計數暫存器cx;

進行迴圈時,每次要對內層迴圈的呼叫都要準備環境,給cx賦值然後迴圈,如果迴圈次數最多的放在內層,那麼cpu前面迴圈呼叫次數明顯比較少;

mov cx, n

rtag:

mov ax, 1

....

loop rtag

簡單總結下:

1.在多重迴圈中,如果有可能,應當將最長的迴圈放在最內層,最短的迴圈放在最外層,以減少cpu跨切迴圈層的次數。

2.如果迴圈體內存在邏輯判斷,並且迴圈次數很大,宜將邏輯判斷移到迴圈體的外面。

PHP yield溝通函式迴圈內外

1.yield是函式內外,迴圈內外溝通用的 當你的函式需要返回乙個大陣列 迴圈的時候需要遍歷這個大陣列時 並且需要多次遍歷這個函式的返回值 這個是有用的 2.當我也是只需要在一次迴圈中就可以處理完所有的事情時 這個就沒啥用 在函式內迴圈的時候 會暫停住 回到我的外層迴圈裡來 注意看輸出的順序 當然如...

PHP yield溝通函式迴圈內外

1.yield是函式內外,迴圈內外溝通用的 當你的函式需要返回乙個大陣列 迴圈的時候需要遍歷這個大陣列時 並且需要多次遍歷這個函式的返回值 這個是有用的 2.當我也是只需要在一次迴圈中就可以處理完所有的事情時 這個就沒啥用 在函式內迴圈的時候 會暫停住 回到我的外層迴圈裡來 注意看輸出的順序 當然如...

try catch放在迴圈內外的區別

如下2段 public void test1 catch interruptedexception e public void test2 catch interruptedexception e test1是將try catch放在了迴圈內,test2是將try catch放在了迴圈個。二者的區別...