2016-11-04 37 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

非常感謝大家! –