我正在编写一个程序,其中用户输入一个正整数,然后计算以该值开头的序列。我知道如果输入的值低于零,如何显示错误消息,但我无法弄清楚如何简单地回送并允许用户再次尝试输入。
n = input('Please insert an integer ');
if n <= 0
error('Only integer inputs are allowed, try again.')
elseif n > 0
(sequence is coded here)
end
虽然我知道这很简单,但我无法弄清楚如何做到这一点。
答案 0 :(得分:2)
使用while
循环并保持循环,直到输入有效输入。顺便说一句,你不想使用error
,因为这将使你的程序终止。您只想显示错误,然后允许循环返回到代码的开头并重试。您还需要更改要显示的消息以反映只应放入正整数。您可以将其视为“整数”,告诉用户您也可以输入负整数:
while true
n = input('Please insert an integer ');
if n <= 0
disp('Only positive integer inputs are allowed, try again.')
else
(sequence is coded here)
break; % Terminate the loop as we have succeeded
end
end
这基本上是你的要求转录为while
循环。有些人通过在满意后将条件设置为while
和true
来使break
循环明确无限,就会皱眉头。更友好的方法是首先将整数设置为零,然后让while
条件保持循环,同时整数仍为零,如果仍然为零或负数,则显示消息。当你最终得到你想要的整数时,循环自然会破坏:
n = 0;
while n <= 0
n = input('Please insert an integer: ');
if n <= 0
disp('Only positive integer inputs are allowed. Try again.');
else
(sequence is coded here)
end
end