2015-12-10 81 views
-3
case 1: 
       System.out.println("Please create a Book ID: "); 
       String newID = sc.next(); 
       for (int i = 0; i < myBooks.size(); i++) { 
        if (myBooks.get(i).getBookID().contains(newID)) { 
         System.out.println("This BookID already exists. Please enter a different bookID"); 
         sc.next(); 
        } 
       } 

//這是我在我的程序中使用的開關的一小部分代碼。我試圖實施驗證,似乎遇到了一些問題。我試圖讓用戶添加一本新書到一個arrayList,如果輸入已經存在,我的程序會生成一個驗證檢查。代碼有效,但只有一次。我知道它可能是我需要的循環,但我仍然在學習如何使用它們。java驗證檢查只能工作一次

+0

你能否在你的問題中加入一個小的運行示例並輸入內容。這將使解決問題更容易。 – SomeJavaGuy

+0

在一個地方你有'newID = sc.next()' - 在另一個地方你有'sc.next()'。有任何看起來可疑的東西? – John3136

+0

我將'sc.next()'更改爲'newID = sc.next()',但它不能修復它。 – JC1

回答

0

您正在混制責任。 for循環嘗試檢測已存在的書籍ID,並在驗證失敗時向用戶請求新的ID。

您需要兩個循環:

  • 外環向用戶請求一個新的ID和終止,如果有效身份證已經進入
  • 一個內部循環來檢查輸入的ID的有效性