2017-10-10 115 views
0

因此,我目前正在編寫一個程序,基本上要求用戶輸入並根據該輸出計算總課程負載和費用。我將如何防止用戶重複條目(在這個程序中使用JOptionPane和if語句)

但是我有點卡住了。我應該防止用戶多次輸入相同的課程編號,我似乎無法弄清楚。任何幫助,將不勝感激!

這是一小塊我的代碼:

 while (option == JOptionPane.YES_OPTION) { 
     if (!(typeOfStudent.equals("Online") || typeOfStudent.equals("On campus"))) { 
      JOptionPane.showMessageDialog(null, "Enter either 'Online' or 'On campus'"); 
      System.exit(0); 
     } 
      courseNumber = JOptionPane.showInputDialog("Enter the Course Number for the class you are taking(100/150/250/300): " + "\n"); 
      courseNum = Integer.parseInt(courseNumber); 

     if (!(courseNum == 100 || courseNum == 150 || courseNum == 250 || courseNum == 300)) { 
      JOptionPane.showMessageDialog(null, "Enter a valid course number (100/150/250/300)"); 
      System.exit(0); 
     } 
     if (courseNum == 100 && (typeOfStudent.equals("Online"))) { 
      totalNumCredits += credits100; 
      totalStudentFee += onlineStudentFee100; 

     } 
+0

請閱讀[mcve]。不要只是在這裏放下一些代碼,並期望我們能夠確定你的代碼在做什麼,以及如何偏離你的期望。 – GhostCat

+0

這是一個非常簡單的問題,我簡單地回答了一個空白問題。我提供了足夠的代碼,以便人們瞭解我正在嘗試做什麼。試圖不用代碼重載頁面或獲得比我需要的更多的方式。基於代碼本身以及我之前的段落,很清楚代碼正在做什麼。雖然 – stgray

回答

1

維護那些已經由用戶選擇的課程列表:

List<Integer> courses = new ArrayList<>(); 

然後修改當前的代碼檢查過程已被選中或沒有。

if (!(courseNum == 100 || courseNum == 150 || courseNum == 250 || courseNum == 300)) { 
      JOptionPane.showMessageDialog(null, "Enter a valid course number (100/150/250/300)"); 
      System.exit(0); 
     } 
     if(courses.contains(courseNum) { 
      JOptionPane.showMessageDialog(null, "It is an already selected course number"); 
      return; 
     } 
     courses.add(courseNum); 
     if (courseNum == 100 && (typeOfStudent.equals("Online"))) { 
      totalNumCredits += credits100; 
      totalStudentFee += onlineStudentFee100; 

     } 
+0

感謝,但仍然繼續該計劃。只是不斷添加課程。認爲它也會工作! – stgray

+1

您需要將建議的'courses'列表保存爲實例成員,而不是您的處理程序方法中的局部變量。 – VHS

+1

啊,呃!謝謝,那肯定是照顧它的。你是一個拯救生命的人。 – stgray