Matlab:显示错误消息并循环返回以允许用户再次尝试

时间:2016-11-04 19:24:04

标签: matlab loops

我正在编写一个程序,其中用户输入一个正整数,然后计算以该值开头的序列。我知道如果输入的值低于零,如何显示错误消息,但我无法弄清楚如何简单地回送并允许用户再次尝试输入。

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

虽然我知道这很简单,但我无法弄清楚如何做到这一点。

1 个答案:

答案 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循环。有些人通过在满意后将条件设置为whiletrue来使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