首页 > 编程笔记 > MATLAB笔记 阅读:5

MATLAB switch的用法(附带实例)

在 MATLAB 中,switch分支结构适用于条件多且比较单一的情况,类似于一个具有多个开关的数控系统。其一般的语法格式如下:
switch 表达式
    case 常量表达式 1
        语句组 1
    case 常量表达式 2
        语句组 2
    ...
    otherwise
        语句组 n
end
switch 分支结构流程如下图所示:


图 1 switch分支结构流程图

switch 后面的表达式可以为任何类型,如算术表达式、字符串表达式等。当表达式的值与 case 后面常量表达式的值相等时,就执行这个 case 后面的语句组,如果所有的常量表达式的值都与这个表达式的值不相等,则执行 otherwise 后的语句组。

常量表达式的值可以重复,在语法上并不算错误,但是在执行时,后面符合条件的 case 语句将被忽略。各个 case 和 otherwise 语句的顺序可以互换。

【实例】输入一个数,判断它能否被 5 整除。在编辑器中创建一个名为 switchding.m 的 M 文件,其内容如下:
clear
n=input('输入n=');  % 输入 n 值
switch mod(n,5)      % mod 是求余函数,余数为 0,得 0,余数不为 0,得 1
    case 0
        fprintf ('% d 是 5 的倍数',n)
    otherwise
        fprintf('输入值% d 不是 5 的倍数。',n)
end
执行程序,在命令行窗口中提示符下依次输入:

>> switchding
输入 n=16  % 输入 16
输入值 16 不是 5 的倍数。


在 switch 分支结构中,case 后的常量表达式不仅可以为一个标量或者字符串,还可以为一个数组。如果常量表达式是一个数组,MATLAB 将把表达式的值和该数组中的所有元素进行比较;如果数组中某个元素和表达式的值相等,则执行这个 case 后面的语句组。

相关文章