2015-01-11 206 views
0

我正在處理一個問題,其中我必須檢查輸入數組的輸入是否在1到10000之間。如果它是真的,我必須繼續下一步一套行動。我如何處理它。 請在下面找到我的代碼:檢查輸入到數組中的輸入是否正確

Scanner in = new Scanner(System.in); 
    System.out.println("Enter 10 values between 1 and 10000: "); 
    for(int i=0; i<10; i++) { 
      if (z[i]>1 && z[i]<10000) { 
     z[i] = in.nextInt(); 
     } 
    } 

但林不能夠檢查的「如果」的聲明我已經擺在那裏。你能幫我解決嗎?

+2

交換請求輸入和比較線。 – Maroun

+0

對不起,我沒有得到你,什麼 – Dev

+0

你不能測試如果z [i]中沒有任何內容時'z [i]> 1'。您應該得到輸入,測試它是否符合值,然後將其分配給數組。 –

回答

0

你想用一個模式線以下(僞代碼,因爲這樣的問題往往是家庭作業和學習爲主,沒有找到答案和複製)。我希望偉大的未來程序員!

首先設置:

  1. 初始化變量給你規劃你的用戶「你應該輸入」消息。爲什麼?所以如果你需要改變它,你只有一個地方去!
  2. 初始化變量的任何錯誤信息(S),你會發現
  3. 建立輸入流

現在循環:

Issue the "what you should enter" message 
Initialize any needed counters 
begin the loop (while counters < value?) 
    // use try catch to surround your input and calculations to catch malformed integers etc 
    try { 
     get candidate data element from input stream 
     check for validity 
     if success increment count, do other needed work 
     if fail, reissue "what you should enter" message or more specific error message 
    } catch malformed input { 
     reissue "what you shoue enter" message, including error for malformed input 
    } 
end loop 

注意,如果你正在做的工作直到出現某種情況(例如,用戶輸入QUIT),則使用該條件(第一次設置爲false)作爲環路終止測試

+0

謝謝,這真的很有幫助。 – Dev

3

輸入保存到變量第一

int num = in.nextInt(); 

然後驗證

if(num>1 && num < 10000) { 
    z[i] =num; 
}else { 
    System.out.printf("Invalid number: %d",num); 
} 
+0

謝謝。它的工作。 :) – Dev

+1

雖然是真的,但還需要做更多的事情(例如,如果用戶輸入一個字母而不是數字,或輸入s 11.33.22 – ErstwhileIII

相關問題