迴圈程式設計

2021-10-02 12:10:59 字數 1452 閱讀 9099

在實際問題的處理程式中、常常需要按照一定規律,多次重複執行一串語句,這類程式叫迴圈程式。

迴圈程式一般由4部分組成:

(1)置迴圈初值部分:這部分是為了保證迴圈程式能正常進行迴圈操作而必須做的準備工作。迴圈初值分兩類,一類是迴圈工作部分的初值,另一類是控制迴圈結束條件的初值。

(2)工作部分:即需要重複執行的程式段。這是迴圈程式的核心,稱之為迴圈體。

(3)修改部分:按一定規律修改運算元位址及控制變數,以便每次執行迴圈體時得到新的資料

(4)控制部分:用來保證迴圈程式按規定的次數或特定條件正常迴圈。

迴圈的實質是相似重複,是把一段程式連續執行多次。被重複執行的部分稱作迴圈體。要想把迴圈體多次執行,就必須在迴圈體的前後有相應的指令實現迴圈控制。根據迴圈控制命令與迴圈體的相對位置不同,迴圈有兩種流程,如圖7.2所示。

先判斷再迴圈

圖7.2(a)描述的迴圈是先做條件判斷,由判斷結果產生兩路分支,其中一路(圖中的"y""分支)直接跳轉到迴圈體的後面,另一路進人迴圈體,迴圈體執行一次之後轉回到條件判斷部分,再次進行條件判斷。如此重複直到條件滿足為止。如果第一次條件判斷就選擇了圖中的"y"分支,這種情況下迴圈將一次都不執行。組合語言需要用跳轉指令進行迴圈控制。

先迴圈再判斷

圖7.2(b)是迴圈的另一種結構,先把迴圈體執行一遍,然後再做條件判斷。當條件成立時由"n"分支跳轉到迴圈體的第一條指令,重複執行迴圈體,否則按順序執行條件判斷的後續指令,當然也就跳出了迴圈部分。

計數型迴圈

計數是計算機最常用的功能之一,在組合語言中設計有一條專用指令控制已知執行次數的迴圈。

格式:loop 標號

功能:先把暫存器cx的值減1送回cx中,若這時cx 值不是0.則轉到標號所指向的指令繼續執行,否則按正常順序執行下一條指令。

說明:(1)這是把cx 當作遞減計數器使用,loop指令包含了把cx 減1的功能,不需要另外寫cx減1的指令。

(2)l0op屬於條件跳轉指令,但跳轉不依賴於任何標誌位,僅僅根據 cx減1後的值是否為0。與其他條件跳轉一樣,跳轉的距離不能超過前後128位元組。

(3)由loop指令構成的迴圈,通常是在迴圈之外先將cx中放預定的迴圈次數,然後是迴圈體,迴圈體的最後是lo0op指令跳轉到前面定義的標號處。這種結構是圖7.2(b)所描述的"先重複再判斷"的迴圈,迴圈體最少執行一次。

(4)由於是對cx先減1後判斷,若執行l0op指令時cx的值是0,則減1後變成offffh,不為0,則會轉到標號處。所以,如果 cx中預先放的值是0,迴圈體將會執行65536。為預防這樣的情況出現,通常先用jcxz指令判斷一下 cx值是否為0,不為0時再進人迴圈部分。

(5)loop指令不影響標誌位。

迴圈巢狀

在乙個迴圈的迴圈體中又出現了另乙個迴圈,這種現象稱為迴圈巢狀。當這種巢狀關係只有內外兩層時,程式設計並不非常困難。在組合語言中,迴圈都是由程式設計者自己用跳轉指令控制的,所以編寫程式時需要很仔細地區分內外迴圈,要把內迴圈所有指令套在外迴圈的迴圈體當中,不能出現兩個迴圈交叉的情況.

shell指令碼程式設計 迴圈(for迴圈)

知識回顧 建立shell指令碼規則 執行指令碼 變數測試 運算if 單分支 雙分支 多分支 例項 剪刀石頭布 檢測主機是否存活 判斷成績 迴圈 for while case 分支編寫 學習shell注意 shell是一門只針對於linux的指令碼語言 知識放空 重點是學習語法結構 for迴圈 語法結...

迴圈結構程式設計

一 實驗目的 1 掌握用while語句,do while語句和for語句實現迴圈的方法。2 掌握在程式設計中用迴圈的方法實現一些常用演算法 如窮舉 迭代 遞推等 3 除錯程式的技巧。二 實驗內容 1 輸入一行字元,分別統計出其中的英文本母 空格 數字和其它字元的個數。2 用for 語句求1 到100...

shell for迴圈程式設計

在shell程式設計中,for迴圈語句的程式設計的格式為 for 變數 in do done 將in後面的資料一一的輸入到變數裡面,先輸入第乙個,然後執行do後面的語句,然後輸入第二個,執行do後面的語句,以此類推,直到輸入完畢 例子 shell for for迴圈 bin bash for i i...