如何为 While 循环设置多个或条件

How to Have Multiple or Conditions for While Loop

我正在尝试制作一个基本的 while 循环以重新使用 matlab 进行操作。我想要做的就是创建一个提示,询问用户今天是否是他们的生日,如果他们说是,它会祝他们生日快乐,如果他们说不是,它会说 "that's too bad"。我可以让提示出现,但我想做的是,除非用户输入 'yes' 或 'no',否则他们将不断被询问今天是否是他们的生日。我的问题是我如何创建循环来一遍又一遍地提示我的问题,直到用户输入 'yes' 或 'no'.

试试这个:

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

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

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

为了一次比较多个字符串,您可以将 strcmp 与用户提供的答案一起使用,并使用包含您要查找的字符串的元胞数组(即 yes/no/etc。) .如果答案对应于任何字符串,则数组(称为 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