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语句用于直接结束执行,继而返回函数值.