Matlab中if语句和elseif语句的区别

if语句无论是否满足条件都会向下执行,直到程序结束;else if 只要满足一个条件就会停止执行。
这就会导致:同一个判断的事件进入多个if语句中循环而出现多次输出的结果,而else if就不会发生这样的事情。 尤其是在多个if…end嵌套的情况下,这种状况尤其严重。而elseif不会发生这样的情况是因为if…elseif…elseif…elseif…end这种情况end是结束if,也就是说elseif是在if里面嵌套的,相当于只有一个if…end语句。

比如说:想要输入0-10的数字,当等于9或10时,对应的等级是A;如果是8,对应的等级是B;如果是7,对应的等级是C;如果是6,对应的等级是D;如果不是以上的那些数输出的等级是E。

新手用if语句去写的话,很容易写成下面的样子,但是当num>10或num<0时,会输出两个结果一个是第一个if里的:this num is not a approporiate value,另一个是最后一个if里的:your grade is E

num=input('please input a number:')
if num > 10 || num < 0
disp('this num is not a approporiate value')
end
if num == 10 || num == 9
    disp('your grade is A')
end 
if num == 8
    disp('your grade is B')
end 
if num == 7
    disp('your grade is C')
end 
if num == 6
    disp('your grade is D')
end
if num ~= 10 && num ~= 9 && num ~= 8 && num ~= 7 && num ~= 6
     disp('your grade is E')
end

这是由于:if语句无论是否满足条件都会向下执行,直到程序结束

在这里插入图片描述
在这里插入图片描述

这是由于13和-3既满足

if num > 10 || num < 0
disp('this num is not a approporiate value')
end

也满足:

if num ~= 10 && num ~= 9 && num ~= 8 && num ~= 7 && num ~= 6
     disp('your grade is E')
end

所以输出出来的既有:this num is not a approporiate value也有:your grade is E

但是if elseif语句则是,当不满足if中的条件的时候,才会去执行else if
因而上面的问题可以用elseif来解决:

num=input('please input a number:')
if num > 10 || num < 0
disp('this num is not a approporiate value')
elseif num == 10 || num == 9
    disp('your grade is A')
elseif num == 8
    disp('your grade is B') 
elseif num == 7
    disp('your grade is C')
elseif num == 6
    disp('your grade is D')
else
     disp('your grade is E')
end

或者:

num=input('please input a number:')
if num > 10 || num < 0
disp('this num is not a approporiate value')
elseif num == 10 || num == 9
    disp('your grade is A')
elseif num == 8
    disp('your grade is B') 
elseif num == 7
    disp('your grade is C')
elseif num == 6
    disp('your grade is D')
elseif num ~= 10 && num ~= 9 && num ~= 8 && num ~= 7 && num ~= 6
        disp('your grade is E')
end
  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华毓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值