4.4 控制程序流的其他常用指令
4.4.1 return指令
通常,当被调用函数执行完成后,MATLAB会自动将控制权转回主函数或Commands窗口。但是如果在被调用函数中插入return指令,则可以强制MATLAB结束执行该函数并把控制权转出。
4.4.2 input和keyboard指令
(1)input指令将MATLAB的控制权暂时交给用户,用户通过键盘输入数值、字符串或表达式等,并按Enter键将输入内容传递到工作区,同时把控制权交还给MATLAB。其常用的调用格式如下。
● Value=input('message'):将用户输入的内容赋值给变量Value。
● Value=input('message','s'):将用户输入的内容以字符串的形式赋值给变量Value。
说明:
① 指令中的“message”是显示在屏幕上的字符串。
② 对于上面第一种调用格式,用户可以输入数值、字符串等各种形式的数据。
③ 对于上面第二种调用格式,用户无论输入什么内容,均以字符串的形式赋值给变量。
(2)当执行遇到keyboard指令时,MATLAB将控制权暂时交给键盘,用户可以由键盘输入各种合法的MATLAB指令。只有当用户输入完成,并输入return指令后,控制权才交还给MATLAB。
input和keyboard指令的不同之处在于:keyboard指令允许输入任意多个MATLAB指令,而input指令只允许用户输入赋值给变量的“值”,即数组、字符串或元胞数组等。
4.4.3 yesinput指令
yesinput指令是一个只能输入的指令,它提供的输入值是一个默认量,并可以对输入范围进行检查,其调用格式如下。
● Value=yesinput('Prompt',Default,Possib)。
说明:
(1)yesinput指令涉及用户和MATLAB之间的交互,因此无法在notebook程序中运行。
(2)Prompt为文字提示,Default为默认的设置值,Possib为可选值。
(3)当yesinput指令运行后,如果用户不输入任何值,则变量Value将接收默认值。
4.4.4 pause指令
pause指令的功能为控制执行文件的暂停与恢复,其调用格式如下。
● pause:暂停执行文件,等待用户按任意键继续。
● pause(n):在继续执行文件之前,暂停n秒。
4.4.5 continue指令
continue语句把控制权传给下一个在其中出现的if或while循环的迭代,忽略任何循环体中保留的语句。在嵌套循环中,continue语句把控制权传给下一个for或while循环所嵌套的迭代。
例4-13:continue指令使用示例。
本例展示了一个在magic.m文件代码中计算行数的continue循环,跳过所有空行和注释。continue语句用于前进到magic.m的下一行。
创建M文件并命名为ex4_13.m,利用M文件编辑器在M文件中输入:
运行后可得到如下结果:
4.4.6 break指令
在for循环或while循环结构中,有时并不需要运行到最后一次循环用户就已经得到了所需要的结果,那么后面的循环就变成冗余的了,消耗了运算时间并占用了内存。
break指令可进行对for循环或while循环结构的终止,通过使用break指令,可以不必等待循环的预定结束时刻,而是根据循环内部设置的终止项来判断。
若终止项满足,则可以使用break指令退出循环;若终止项始终未满足,则照常运行至循环的预定结束时刻。
例4-14:for循环的中途终止。
创建M文件并命名为ex4_14.m,利用M文件编辑器在M文件中输入:
运行M文件可得到如下结果:
4.4.7 error和warning指令
在编写M文件时,常用的错误或警告指令的调用格式有以下几种。
● error('message'):显示出错信息message,终止程序。
● errortrap:错误发生后,控制程序继续执行与否的开关。
● lasterr:显示MATLAB系统判断的最新出错原因,并终止程序。
● warning('message'):显示警告信息message,继续运行程序。
● lastwarn:显示MATLAB系统给出的最新警告程序,并继续运行。