Matlab中的程序控制語句包括條件控制(Conditional Control)、循環(Loop Control)、異常處理(Error Control)和程序返回(Program Terminate).
1 條件控制語句
條件控制語句又稱分支語句,在Matlab中包括if語句和switch語句.
(1) if 語句可以包含多個else或elseif也可以不包含,它必須以end結尾,例如
a = 25; if a>30 disp(‘a比30大’); %輸出字符串 elseif a>20 disp(‘a比20大比30小’); else disp(‘a比20小’); end;
在命令窗口中運行結果如下:
注意,其中elseif是連寫.
(2) Switch 語句一般包含若干個case和一個otherwise,且必須以end結尾,當表達式的值滿足某一個case后,就只執行此case下的語句並結束,不再考慮后面的case. 例如
a = 25; switch rem(a,2) case 0 disp(‘a能被2整除’); case 1 disp(‘a不能被2整除’); otherwise disp(‘異常’); end;
2 循環語句
Matlab中的循環語句包括for循環和while循環,循環內支持用continue和break語句跳出循環.
(1) for 循環用於循環次數明確的情況下, 其中控制循環的索引變量用冒號隔開,整個循環語句以end結束. 在默認情況下,每執行一次循環則索引變量加1(也可以自定義索引變量的步長,讓每執行一次循環使索引變量增加k,k可為負數),當索引變量的值大於設定的結束值時結束循環.例如
x(1,1)=1; for n=2:6 x(1,n)=2*x(1,n-1) end;
在命令窗口中運行結果如下:
(2) while循環用於在滿足一定條件的情況下一直執行一段語句,當while后的條件不再滿足時則結束循環, 例如
x(1,1)=1; n=2; while x(1,n-1)<128 x(1,n)=2*x(1,n-1); n=n+1; end;
的運行結果為 x=[1,2,4,8,16,32,64,128].
3 continue 和 break語句
簡而言之,continue是結束本次循環,break是結束本層循環.
例如在一個for循環中,假設循環索引變量是i, 在i的取值為1到100之間的情況下執行循環(即執行100次循環),且循環模塊中的語句總共有30條. 如果在i=50時,執行了循環區域中的前10條語句后出現了continue語句,則此時程序會放棄執行剩下的20條語句,轉而執行第i=51次的循環. 因此,continue語句並不改變循環的總次數,只會導致某(些)次循環執行得不完整.
在相同情況下,如果程序在執行了循環區域中的前10條語句后出現break語句,則直接跳出該for循環,轉而執行整個循環模塊以外的后面的語句. 如果該循環模塊包含在另一個大的循環模塊中,則繼續在大循環模塊中執行循環. 因此,break語句會改變循環的次數.
4 try...catch語句
try…catch 語句用於異常和錯誤處理,當捕獲到一個異常時則執行catch后的語句,最后以end結尾,其語法結構如下
try statement … statement catch meObj statement … statement end;
5 return 語句
return語句用於直接結束執行,繼而返回函數值.