MATLAB知识点:条件判断switch-case-otherwise-end语句

 ​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​

MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili


节选自​第4章:MATLAB程序流程控制

switch翻译成中文为开关,switch语句是另一种实现条件语句的方法,其基本用法如下:

switch语句在运行时,会将开关表达式的值依次和各个 case后面的表达式的值判断是否相等,如果相等则为true,此时会执行该case中相应的语句;如果不相等则为false,此时会取下一个 case 后面表达式的值进行比较,直到出现true为止。如果所有case 后面表达式的值均与开关表达式的值不相等,则执行 otherwise 中对应的语句。

注意:开关表达式的计算结果必须是一个数值标量或者是一个字符向量/字符串,不能是向量或者矩阵。若为数值标量,则当case后面表达式中的值等于开关表达式的数值标量时为true;若为字符向量或字符串,则当case后面表达式中的字符向量/字符串和开关表达式的字符向量/字符串完全相同时为true。下面举两个例子帮助大家理解:

season = randi([1,4])   % 季节
switch season
    case 1
        disp("第一季度为春季");
    case 2
        disp("第二季度为夏季");
    case 3
        disp("第三季度为秋季")
    otherwise
        disp("第四季度为冬季")
end

season是在区间[1,4]上随机生成的一个整数,用来表示季节。switch后面的开关表达式就是season这个数值标量,程序会按照从上到下的顺序依次判断season和case后面的数值是否相等,若相等则执行对应的语句。若season取值为4,则和case后面的数值均不相等,此时程序会执行otherwise后面的语句。

注意:MATLAB中的单引号和双引号表示的文本有一定的区别,使用单引号引起来被称为字符向量,例如'abc',而双引号引起来的被称为字符串,例如"abc"。

上面代码中我们用到了disp函数(来自单词display),它可以将文本、数值等显示到MATLAB的窗口,disp语句是否以分号;结尾不会影响结果的输出。

例2:a和b是在区间[1,10]上随机生成的两个整数,我们希望根据变量way表示的字符串决定对a和b的计算方式。

a = randi(10)
b = randi(10)
way = "乘法";
switch way
    case "加法"
        disp(a+b)
    case "减法"
        disp(a-b)
    case "乘法"
        disp(a*b)
    case "除法"
        disp(a/b)
    otherwise
        disp("你的输入有误")
end

switch后面的开关表达式就是way表示的字符串,程序会按照从上到下的顺序依次判断way和case后面的字符串是否相同,若相同则执行对应的语句。例如way等于“乘法”,则程序会先判断第一个case,第一个case为“加法”,字符串不相同,则会继续判断第二个case,第二个case的字符串和way的字符串也不同,则会判断第三个case,此时字符串一致,程序会执行disp(a*b)这一行语句,假设a为5、b为3,则会在窗口输出15。

易错点:和if语句一样,switch语句必须以end结束,千万不能漏写!

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 对于这个问题,我可以给你提供一些建议。在Matlab中,可以使用switch-case语句来实现控制结构,其格式为:switch(expression),case1:statement1; case2:statement2; ……; otherwise:statementX;end。其中expression可以是一个变量或者表达式,case1到caseN是可能的取值,statement1到statementN分别是每一种可能情况下要执行的命令,otherwise是可选的,表示在所有case都不匹配的情况下应该执行的命令。 ### 回答2: switch-case语句MATLAB中一种条件选择结构,用于根据不同的条件执行不同的代码块。以下是一个使用MATLAB编写的switch-case语句的示例: ```matlab score = input('请输入你的分数:'); % 获取用户输入的分数 switch score case 90 disp('成绩优秀,你是学霸!'); case 80 disp('成绩良好,继续努力!'); case 70 disp('成绩中等,还有进步空间!'); case 60 disp('成绩及格,继续加油!'); otherwise disp('成绩不及格,再接再厉!'); end ``` 在这个例子中,首先通过`input`函数获取用户输入的分数,然后使用switch-case语句根据不同的分数执行不同的代码块。根据输入的分数,分别进入不同的case分支并输出相应的信息。如果输入的分数没有匹配到任何一个case分支,将执行otherwise分支的代码块。 通过这种方式,我们可以根据不同的条件执行不同的操作,提高程序的灵活性和可读性。 ### 回答3: switch-case语句是一种条件判断语句,根据不同的条件执行不同的代码块。在MATLAB中,我们也可以使用switch-case语句来实现相同的功能。 switch语句由关键字switch和多个case语句组成,每个case语句都有一个常量或者表达式作为条件。当某个case条件switch中的表达式匹配时,该case中的代码块将被执行。同时,我们还可以为switch语句定义一个默认的执行代码块,即当没有任何case匹配时,执行默认的代码块。 以下是一个使用MATLAB编写的简单的switch-case语句示例: ```matlab % 假设我们定义一个变量x x = 3; % 使用switch-case语句进行条件判断 switch x case 1 disp('x等于1'); case 2 disp('x等于2'); case 3 disp('x等于3'); otherwise disp('x不等于1、2和3'); end ``` 在上述示例中,我们定义了一个变量x,并使用switch-case语句进行条件判断。根据x的值,对应的case中的代码块将被执行。在这个例子中,由于x的值为3,因此执行输出语句`disp('x等于3');`,即输出"x等于3"。如果x的值是1或2,则分别执行相应的case中的代码块。如果x的值不等于1、2和3,则执行默认的代码块,即输出"x不等于1、2和3"。 通过使用switch-case语句,我们可以根据不同的条件执行不同的代码块,提高了MATLAB程序的灵活性和可读性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值