2017-10-10 17 views
0

기본적으로 사용자 입력을 요구하는 프로그램을 작성하고 총 출력 및 요금을 계산합니다.사용자가 중복 항목을 막을 수있는 방법 (이 프로그램의 JOptionPane 및 if 문 사용)

그러나 나는 조금 붙어 있습니다. 사용자가 동일한 코스 번호를 두 번 이상 입력하지 못하도록되어있어 알아낼 수없는 것 같습니다. 어떤 도움을 주시면 감사하겠습니다!

이 내 코드의 작은 조각이다 과정 있는지 확인하는

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

그런 다음 현재의 코드를 수정 :

 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

이미 사용자가 선택 과목의 목록을 유지 이미 선택되었는지 여부.

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