无论在matlab编程还是其它一些语言编程当中,一个很重要的东西就是流程控制语句。在处理数据的过程中,会发现有很多重复性的劳动,手工处理第一会非常的麻烦,第二就是很容易出错,而用程序处理就能很好的解决这个问题,而解决这个问题的关键就在流程控制语句的使用。
1.1顺序结构
顺序结构是最简单的程序结构,系统在编译程序时按照程序的物理位置顺序执行。这种程序容易编制,但是结构单一,能够实现的功能有限。
1.2流程控制——判断语句
我们之前提到过if语句,我们再来回顾一下。
if…end 最简单的判断语句
程序结构如下:
if 表达式
执行代码块
end
if…else…end
当程序有两个选择时,可以选择 if…else…end 结构
if 表达式
执行代码块1
else
执行代码块2
end
当判断表达式为真时,执行代码块1,否则执行代码块2
注意:语句中的 end 是决不可少的,如果没有它的话,在逻辑表达式为0时,就找不到继续执行程序的入口。
1.3流程控制——分支语句
switch 变量
case 条件语句1
执行语句1
case 条件语句2
执行语句2
case 条件语句3
执行语句3
case 条件语句4
执行语句4
................
otherwise
执行语句
end
在编程时,经常需要用到switch语句,举个例子,我们在选择文件按何种顺序排列时,其实其代码中就可能使用了switch语法:
switch (get(handles.ppmPerm,'Value')), % 文件排列依据
case 1 % 按时间排列
tmp = {theFile.datenum}';
case 2 % 按大小排列
tmp = {theFile.bytes}';
case {3,4}% 按名称/类型排列
tmp = {theFile.name}';
case 5 % 随机排列
tmp = randperm(length(theFile))';
otherwise % 其他情况
% do nothing
end
1.4流程控制——循环语句
1.4.1 for循环
for语句调用的基本格式如下:
for index = 初值:增量:终值
语句组A
end
功能:每次执行时程序中的index的值按“增量”增加
for语句的循环次数N是预先指定的。
N = 1 + (终值 - 初值)/增量
注意:
for的结尾必须有end来表示循环的结束,如果没有end,程序会出现错误。
1.4.2 while循环
while是个很强大的循环语句,前面所说for能做的地方,while一样可以做到,并且while可以做到很多for无法做到的事情。比如当不知道循环次数的时候,我们就可以使用while语句了,但有个问题while的使用会比较困难,对循环的整个过程以及流程要很了然于胸才能使用正确,否则会把自己绕进去。初学者要多加练习,后面有很多地方会用到这个循环,并且也只能使用这个循环。
while的基本语法是这样的:
while 条件判断语句 执行语句 end
while循环翻译过来就是:当条件判断语句的结果为true的时候,执行语句走起;当条件判断语句的结果为false的时候,循环结束。 我们写个简单的while循环试试: a = 1; while a < 10 a = a + 1; end
a的初始值为1。while循环的条件判断语句是 a < 10,符合这个条件的时候就进入循环,执行 a = a + 1的操作,如此反复,直到 a等于10的时候,a就不再小于10了,这个时候跳出while循环。
这里有一点需要说明,matlab中的while循环只有while在前,end在后的形式,也就是要先判断再运行执行语句。matlab中的while循环能不能像C语言那样do在前,while在后,也就是先执行语句再进行条件判断? 答案是无情的No。Oh NO! 但是这没关系,要实现先执行再进行条件判断一点都难不倒勤劳勇敢的华夏儿女炎黄子孙龙的传人。 解决方法就是使用Matlab里面的break跳出循环来解决: while 1 执行语句; if 条件判断语句 break; %终止循环的执行,跳出循环 end end
这样就能保证一进入该段代码就能首先运行一次执行语句,然后用执行语句里边得到的结果作为if条件判断语句的判断条件,实现了do...while()结构。
1.5 其他流程控制语句
1.5.1 Try...Catch语句
在程序设计时,如果不能确定某段程序代码是否会出错,可以采用try…catch语句。在Matlab中使用 try…catch 语句能够捕捉和处理错误情况,其调用的格式如下:
try
程序代码1
catch
程序代码2
end
1.5.2 Erro函数
在Matlab中,可以采用函数error()来报告错误信息,并且中断程序的执行。
1.5.3 Warning函数
在Matlab中,可以采用函数warning()来显示警告信息,代码如下:
以上就是对常用流程控制语句的简单介绍啦。