【问题标题】:How to Have Multiple or Conditions for While Loop如何为 While 循环设置多个或条件
【发布时间】:2016-05-04 21:25:51
【问题描述】:

我正在尝试制作一个基本的 while 循环,以使用 matlab 重新开始工作。我要做的就是创建一个提示,询问用户今天是否是他们的生日,如果他们说是,它会祝他们生日快乐,如果他们说不,它会说“那太糟糕了”。我可以让提示出现,但我想做的是除非用户输入“是”或“否”,否则他们将不断被问到今天是否是他们的生日。我的问题是如何创建循环以一遍又一遍地提示我的问题,直到用户输入“是”或“否”。

【问题讨论】:

标签: matlab while-loop conditional


【解决方案1】:

试试这个:

while 1
    b = input('Is today your birthday? ','s');
    if any(strcmpi(b,{'yes','no'}))
       break
    end
end

【讨论】:

  • 表明答案完美的正确方法是接受它,而不是发表评论。
【解决方案2】:

这是一种方法(还有很多其他方法):

使用一个 while 循环,在其中放置提示符(这里我使用 inputdlg),一旦用户输入答案,您检查输入的字符串是否与是、是、否和否相比较。如果不是,再次弹出对话框。如果合适,会出现一条消息。

为了一次比较多个字符串,您可以将strcmp 与用户提供的答案一起使用,并使用包含您要查找的字符串的元胞数组(即是/否/等)。如果答案对应于任何字符串,则数组(称为CheckAns)包含 1 且总和不为 0;否则总和等于 0,因此循环继续。 字多,代码如下:

%// Initialize the look up array. All 0 to start and enter the loop
CheckAns = [0 0 0 0];

while ~sum(CheckAns)

    Ans = inputdlg('Is this your birthday?');

    CheckAns = strcmpi(Ans,{'yes';'no'});

    if strcmpi(Ans,'yes')
        disp('Happy birthday')

    elseif strcmpi(Ans,'no')

        disp('Haha loser')

    end

end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    相关资源
    最近更新 更多