官术网_书友最值得收藏!

2.2 程序流程語句

MATLAB的程序流程語句主要包括選擇結構和循環結構兩種語句。選擇結構是根據給定的條件成立或不成立,分別執行不同的語句,主要有 if語句、switch 語句和 try 語句;循環結構是根據給定的條件來決定執行語句的次數,主要有 while 語句和 for 語句。MATLAB的程序流程語句都以end為結束標志。

2.2.1 if語句

MATLAB語言中,if語句有3種不同的格式。

1.單分支if語句

最簡單的選擇結構語句,其基本格式為:

說明:表達式多為關系或邏輯表達式。如果表達式為真(非零),就執行if和end之間的語句組,然后再執行end之后的語句;如果表達式為假(零),就直接執行end之后的語句。

例2-2】 輸入一個數,如果此數小于10就輸出這個數,否則沒有輸出。

單擊 〈F5〉 鍵運行后激活命令行窗口,通過鍵盤輸入數字 “9”。

按 〈Enter〉 鍵后運行結果為:

再次運行M文件后,激活命令行窗口,通過鍵盤輸入數字 “15”。

按 〈Enter〉 鍵后,沒有輸出。

2.雙分支if語句

前面提供的單分支if語句只能處理較簡單的條件,功能不全面。為此MATLAB還提供了雙分支if語句結構。其基本格式為:

說明:如果表達式為真(非零),則執行語句組1,再執行end 后面的語句;如果表達式為假(為零),則先執行語句組2,再執行end后面的語句。

例2-3】 給定兩個實數,按代數值的大小輸出其中的大數。

單擊 〈F5〉 鍵運行后激活命令行窗口,通過鍵盤輸入數字 “9”,單擊 〈Enter〉 鍵后再輸入數字 “6”,觀看運行結果為:

3.多分支if語句

當有3個或更多的選擇時,可采用if語句的嵌套,也可以采用多分支if語句。其基本格式為:

說明:先判斷表達式1的值,若為真,則執行語句組1,執行完語句組1 后,跳出該選擇結構,繼續執行end后的語句;當表達式1的值為假時,跳過語句組1,進而判斷表達式2,若為真,則執行語句組2,然后繼續執行end后的語句;如果表達式 2 的值也為假,則跳過語句組2,繼續判斷表達式3,如此下去,若所有表達式都為假,則執行else后的語句組n+1,再執行end后的語句。else語句可以缺省。

例2-4】 將百分制的學生成績轉化為五級制的成績輸出。

單擊 〈F5〉 鍵運行后激活命令行窗口,通過鍵盤輸入數字 “75”,單擊 〈Enter〉 鍵后觀看運行結果為:

2.2.2 switch語句

if語句只有兩個分支可供選擇,如果分支較多,則嵌套的if語句層數多,程序冗長而且可讀性降低,這種情況可使用switch語。switch語句是多分支選擇語句,其基本格式為:

說明:先計算表達式的值,再按順序與case語句后面的數組值進行比較,如果相等則執行該組語句,然后執行end后的語句,不再繼續比較。當表達式的值不等于任何一個 case語句后面的數組值時,程序將執行otherwise語句后的語句組,再執行 end后的語句。

注意:這種情況下缺省otherwise語句,程序會提示出錯。

例2-5】 某商場對顧客所購買的商品實行打折銷售,標準如下(商品價格用price 來表示):

輸入某件商品的價格,求所售商品的實際銷售價格。

運行后激活命令行窗口,通過鍵盤輸入數字 “2000”,觀看運行結果為:

2.2.3 while語句

while語句是條件循環語句,在條件(多為關系表達式)控制下重復執行,直到條件不成立為止。while循環的一般形式是:

說明:先計算表達式的值,如果非零,語句體就執行一次;執行完畢再次計算表達式的值,如果仍然非零,語句體就再執行一次;如此循環,直到表達式的值為零。如果表達式的值總是非零,該循環將無休止地進行(即死循環),程序設計時一定要避免。

例2-6】 求1+2+3+…+100的和。

運行后激活命令行窗口,觀看運行結果為:

2.2.4 for語句

for語句為計數循環語句,在許多情況下,循環條件是有規律變化的,通常把循環條件初值、終值和變化步長放在循環語句的開頭,這種形式就是for語句的循環結構。for循環的一般形式如下:

說明:表達式1的值是循環變量的初值,表達式2的值是循環步長,表達式3的值是循環變量的終值。初值、步長和終值可以取整數、小數、正數和負數,步長可以缺省,默認值為1。

例2-7】 利用for語句,求解例2-6。

運行后激活命令行窗口,觀看運行結果為:

for語句與while語句的區別:已知循環次數時使用 for 語句,不知道循環次數時使用while語句。例如在100本書中找到其中一本有特殊標記的書,不知道要看多少本書才會找到,需要用while語句,循環的條件是找到書為止(可能看兩本就找到了);如果要在這100本書中挑出全部有破損的書,要用for循環,因為需要每本都看,即看100次。

2.2.5 循環的嵌套

如果一個循環結構的循環體又包括一個循環結構就稱為循環的嵌套,或稱為多重循環。任一種循環語句的循環體部分都可以包含另一個循環語句,多重循環嵌套的層數可以是任意的。習慣上按照嵌套層數,分別叫作二重循環、三重循環等。處于內部的循環叫作內循環,處于外部的循環叫作外循環。在設計多重循環時,要特別注意內、外循環之間的關系,以及語句放置次序,不要搞錯。

例2-8】 有一數列:11+12+13…+110+21+22+23+…+210+31+32+33+…+310 ,求這些項的和。

運行后激活命令行窗口,觀看運行結果為:

注意:在嵌套過程中每一個for都必須與其下方最近的一個end相匹配,否則程序將出錯。

2.2.6 其他語句

1.continue語句

continue語句用于控制for循環或while循環跳過某些執行語句,當出現continue語句時,則跳過循環體中所有剩余的語句,繼續下一次循環,即結束本次循環。

例2-9】 輸出100~120的能被7整除的整數。

運行后激活命令行窗口,觀看運行結果為:

2.break語句

break語句用于終止for循環和while循環的執行。當遇到break語句時,則退出循環體,繼續執行循環體外的下一個語句,即中止循環。在嵌套循環中,break 往往存在于內層的循環中。

例2-10】 輸出100~120第一個能被7整除的整數。

運行后激活命令行窗口,觀看運行結果為:

3.try語句

MATLAB從5.2版開始提供了try語句,這是一種試探性執行語句。語句格式為:

說明:先試探性執行語句組1,如果語句組1在執行過程中出現錯誤,則將錯誤信息賦給保留的lasterr變量,并轉去執行語句組2。

例2-11】 矩陣乘法運算要求兩矩陣的維數相容,否則會出錯。先求兩矩陣的乘積,若出錯,則自動轉去求兩矩陣的點乘(數組乘法)。

運行后激活命令行窗口,觀看運行結果為:

將上例的程序改為:

運行后激活命令行窗口,觀看運行結果為:

主站蜘蛛池模板: 屯门区| 大姚县| 山东| 奎屯市| 望江县| 临高县| 呈贡县| 宜兰县| 唐海县| 盘锦市| 扬中市| 海林市| 安宁市| 伊吾县| 南部县| 南溪县| 剑阁县| 和平县| 栖霞市| 郯城县| 无为县| 朝阳市| 云南省| 卢湾区| 吴江市| 元江| 西宁市| 仙桃市| 常州市| 伊金霍洛旗| 绥滨县| 沙田区| 郯城县| 江津市| 武川县| 望谟县| 外汇| 正阳县| 沭阳县| 寿光市| 巴楚县|