首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MATLAB中的嵌套开关控制流

MATLAB中的嵌套开关控制流
EN

Stack Overflow用户
提问于 2017-04-26 00:02:06
回答 2查看 344关注 0票数 2

你能建议一下吗!场景如下:我尝试了多个switch、case语句,但无法执行..

代码语言:javascript
复制
switch 1
case 'YESS'
{
% curly braces are just to denote the scope of case 'YESS'
.....code      
switch 2
case 'Yes'
from here Can I jump again to the start of switch(1),case 'YESS' ??
case 'No'
%% some message 
end
}
case'NOO'
%% some message 
end
EN

回答 2

Stack Overflow用户

发布于 2017-04-26 00:11:50

但是你没有解释清楚你要找的是什么,使用下面的函数如何:

代码语言:javascript
复制
function main
prompt = 'Do you want more? Y/N [Y]: ';
str1 = askYesNoQuestion(prompt);
switch str1
    case 'Y'
        prompt2 = 'Asking to make sure? Y/N [Y]: ';
        str2 = askYesNoQuestion(prompt2);
        disp(str2);
    case 'N'
        disp('OK no problem!');
end
end


function str = askYesNoQuestion(prompt)
str = input(prompt,'s');
if isempty(str)
    str = 'Y';
end
switch str
    case 'Y'
        disp('you said yes');
    case 'N'
        disp('you said no')
end
end

您可以将整个代码保存在名为main.m的m文件中并运行它。

票数 1
EN

Stack Overflow用户

发布于 2017-04-26 00:13:08

你需要告诉matlab保持循环

代码语言:javascript
复制
  keepLooping = true;
    while keepLooping 
    switch 1
    case 'YESS'
    keepLooping = false; %% exit switch 1

      switch 2
        case 'Yes' %% back to switch 1
        keepLooping = true; %% re-enter switch 1

        case 'No'  %% some message 
        keepLooping = false %% exit switch 1
      end
    case'NOO' %% some message 
    keepLooping = false; %% exit switch 1
    end
    end

或者,在'YESS‘中已经跳过了:

代码语言:javascript
复制
isYesOrNo = 'YESS'
      keepLooping = true;
        while keepLooping 
        switch isYesOrNo
        case 'YESS'
        keepLooping = false; %% exit switch 1
          switch 2
            case 'Yes' %% back to switch 1
            keepLooping = true; %% re-enter switch 1
            isYesOrNo = 'YESS' %% re-enter 'YESS'

            case 'No'  %% some message 
            keepLooping = false %% exit switch 1
          end
        case'NOO' %% some message 
        keepLooping = false; %% exit switch 1
        end
        end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43615701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档