如何为 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
我正在尝试制作一个基本的 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