【问题标题】: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