Cap*_*rog 2 matlab break switch-statement
据我所知,在MATLAB中,没有必要(因为在C++中)使用'break;'来结束switch语句的每个'case'.一旦找到第一个成功案例,该声明就会停止评估.
但是,我有以下情况:
switch variable
case {0, 1}
% Action A
case {0, 2}
% Action B
end
Run Code Online (Sandbox Code Playgroud)
在上述情况下,如果'variable'等于0,则只有Action A将完成.在变量= 0的情况下,我想要完成两个动作.我可以为0创建一个单独的case来激活Action A和B,但这似乎不是有效的编程,因为我必须复制这两个动作.
我确信必须有一个简单的方法来做到这一点,但我仍然是MATLAB的相对新手,所以我想知道我能做些什么来保持我的代码整洁?
问候
switch遗憾的是,MATLAB 语句没有提供直通逻辑的灵活性,因此在这种情况下您将无法使用它.
你可以switch用连续的if语句替换(附有一些注释),这就是你得到的:
%# Switch variable
if (variable == 0 || variable == 1) %# case {0, 1}
%# Action A
end
if (variable == 0 || variable == 2) %# case {0, 2}
%# Action B
end
Run Code Online (Sandbox Code Playgroud)
在我看来它仍然看起来很优雅.
代码长度不一定与可读性或效率相同.我认为正确的答案是丢弃开关并写下你的意思:
if((variable == 0) || (variable == 1))
ActionA();
end
if((variable == 0) || (variable == 2))
ActionB();
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3341 次 |
| 最近记录: |