2017-10-10 3 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

関連する問題