基本控制语句
基本控制语句
MATLAB和其他语言类似,MATLAB程序语句也可以分为顺序语句,选择语句和循环语句。顺序结构是按照代码的书写的结构来执行的,也是最常用的结构,选择结构是按照条件的结果来执行的,有些代码不一定会执行。循环结构是按照条件及结构中的某一条件来循环执行某一段代码。
5.1顺序语句
顺序语句就是自上而下执行程序代码,是程序设计的最简单的一种结构,也是一种默认的执行顺序。
我们接触的程序都是顺序执行的。实现顺序结构的方法非常简单,只需将程序语句顺序排列即可
5.2选择语句
条件语句通常使用条件语句来完成,MATLAB中常用的条件语句有if语句、switch语句和try语句。
5.2.1 if语句
在MATLAB中的if语句有三种形式
·if…end结构
语法格式如下:
if 条件表达式
程序代码
end
当条件表达式为真,执行该结构中的代码,反之,跳过该结构中的代码,执行下一段代码。
·if…else…end结构
语法格式如下:
If 条件表达式
代码1
Else
代码2
End
当条件表达式为真时,执行代码1,反之;执行代码2。执行完后执行后面的代码。
·if…elseif…else…end结构
语法格式如下:
If 条件表达式1
程序代码1
Else if条件表达式2
程序代码2
……
Else if 条件表达式n
程序代码n
Else
程序代码n+1
End
当条件表达式1为真时,执行代码1,否则执行下一个表达式,以此类推,如果都不为真,执行n+1的代码。执行完后执行该结构后面的代码。
实例:
1: >> x=1;
>> if x>0
disp 为真;
else
disp 为假;
end
为真;
>> m=6;
>> if m<0
disp('m<0');
elseif m==0
disp('m==0');
else
disp('m>0');
end
m>0
6.2.2 switch-case语句
当要判断同一条件下的多种情况时,我们通常用switch-case语句,这样可以避免许多冗余的代码,使代码更加的简洁。
Switch-case语法格式
Switch 表达语句
Case 表达语句1;
代码1;
Case 表达语句2;
代码2;
……
Case 表达语句n;
代码n;
Otherwise
代码n+1;
End
该语句格式的表达式必须要为统一的标量或者字符串,如果执行了相应的语句,并且跳出了给判断结构,就不在对后面的语句进行判断。
Switch-case语句的使用
grade=input('shuruchengji');
switch round(grade/10)
case{9,10}
disp('优秀');
case{7,8}
disp('良好');
case{6}
disp('及格');
otherwise
disp('不及格');
end
5.2.3 try语句
Try语句通常用于程序的检测。
Try语句语法格式
Try
代码1
Catch
语句2
end
try首先执行代码1,如果代码1有错,则执行代码2。
5.3循环语句
循环语句一般用于在一定的条件情况下需要重复执行某段程序代码,这是MATLAB提供了一些循环控制语句给用户更加方便的设计程序。
MATLAB提供的循环控制语句有for语句、while语句、continue语句等。
循环语句的一般形式:
5.3.1 for语句
使用for语句可以按照for语句中控制次数去重复执行for循环体内的程序代码。
for循环语句的使用:
for 循环变量=表达式1:表达式2:表达式3
循环体
end
for循环语句执行时先要执行三个表达式的值,表达式1是控制循环开始的初始变量,表达式3是循环终止值,表达式2是循环增长值,如果变量的值介于 表达式1的值和表达式3的值之间,则继续执行循环体,反之,则跳出循环,继而执行for循环后面的代码语句。循环的增长值可以默认,默认状态下是增长值为1。
for循环语句使用的注意事项:在for循环中不可以出现对循环变量重新赋值,否则会报错。for循环语句可以嵌套使用。
实例:for循环语句的使用
>> for i=1:2:6
disp(i);
end
1
3
5
5.3.2while语句
当用户无法事先知道准确的循环次数时,可以使用while语句。
While语句格式:
While 表达式
循环体
End
当表达式的判断条件为真时就执行循环体,反之,则跳出循环,继续执行后面的语句。
需要注意的是在执行该循环时,需要在循环体中设置修改表达式中的值,使表达式的循环条件由真变假,跳出循环,否则会陷入死循环。但有时会在控制语句中加入break语句跳出循环。
实例:While 循环语句的使用
计算 100+99+…+1
s=100;
n=0;
sum=0;
while s>0
sum=sum+s;
s=s-1;
n=n+1;
end
在m文件中输入上述代码,保存问脚本文件,在命令行运行代码,结果如下:
>> s
s =
0
>> sum
sum =
5050
>> n
n =
100
6.3.3 continue语句和break语句
·continue语句
MATLAB提供了continue用于控制循环,当程序运行到该语句时会忽略其后面的循环语句,直接跳入下一次循环。
实例: continue语句的使用
计算向量a的倒数
>> a=[1 2 3 4 5 6 7 8 9 1];
>> for i=1:10
if a(i)==0
b(i)=0;
continue;
end
b(i)=1./a(i);
end
·break语句:
MATLAB提供的break语句,当运行到break时,无论表达式的判断条件真假都会跳出循环,执行循环后面的语句。
实例:Break语句的使用
当能被5整除时,退出循环。
>> for i=1:20
if mod(i,5)==0
break;
end
n=i;
end
>> disp(i)
5
>> disp(n)
4