2016-11-04 65 views
-1

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

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 

虽然我知道这很简单,我不知道该怎么做。

回答

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循环。一旦您满意,有些人就会通过将条件设置为truebreak而使得while循环明确无限。一个更友好的方法是首先将整数设置为零,然后在整数仍为零时使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 
+0

不错我写完全相同的答案几乎是一个字一个字哈哈 –

+1

@ Benoit_11德索莱:)J'écris河畔周一键盘TROP TROP维生素E。 DTF,merci pour votre +1! – rayryeng

+0

非常感谢大家! –