2016-04-07 17 views
0

私は住宅ローンを計算しなければならないプロジェクトに取り組んでいます。 1)デフォルト値を使って住宅ローンを計算するローン選択メニューがあるはずです。 2)は、ユーザがカスタム値を入力することを可能にする。 3)を使用すると、ユーザーはプログラムを終了し、計算値を表示できます。私はプログラムが最大10回実行できるようにするforループを持っています(これはもっと少なくてもかまいません)。私は現在、3が選択されているときにプログラムを終了するためにdo-whileループを使用しています。しかし、それは終了していない。 I "間違っているかわからないMと私はそれはそれはになっているものないことを確認するために実装することができます説明し、いくつかの微調整のために期待しています。私はwhileループを使ってwhileループを使って終了しようとしています

 do 
     { 
      int selection = 0; 
      for(int i=0; i<loanArray.length; i++) 
      { 
       System.out.println("Please choose from the following choices below: "); 
       System.out.println("\t1) Promotional Loan (preset loan amount, rate, term)"); 
       System.out.println("\t2) Unique Loan (enter in loan values)"); 
       System.out.println("\t3) Quit (Exit the program)"); 

       System.out.println("Please enter your selection(1-3): "); 
       selection = s.nextInt(); 

       if(selection ==1) 
       { 
        loanArray[i] = new Mortgage(); 
        System.out.println(loanArray[i].toString()); 
       } 
       else if (selection ==2) 
       { 
        loanArray[i].storeLoanAmount(); 
        loanArray[i].storeInterestRate(); 
        loanArray[i].storeTerm(); 
        System.out.println(loanArray[i].toString()); 
       } 
       else if(selection == 3) 
       { 
        programSelection = false; 
        programRunning = false; 
       } 
      }//end of for array loop 
     }while (programSelection == true); //end of selection while loop 

     System.out.println("Exit Test"); //print statement to test if selection screen exited 
+0

実際の比較コードは次のようになります。 "選択"はおそらく3に設定されていません。 "s"の宣言のソースコードを入力してください。 '' selection = s.nextInt(); ''の直後に '' selection''の値を表示することで、 '' selection''が実際に持っている値を確認することができます。 '' System.out.println( "Selection ==" + selection ") –

答えて

0

後、私は持っていない追加実際にこれをテストしたが、私はこの問題は、forループを出ていると思います。それをテストする最も簡単な方法は、単にラベルでbreakステートメントを使用することである。ラベル付き

outerLoop: 
    do 
    // ... 
      else if(selection == 3) 
      { 
       break outerLoop; 
      } 
     }//end of for array loop 
    }while (programSelection == true); //end of selection while loop 

ブレーク文はディスクですJava tutorial.

0

break;programRunning = false;

+0

ありがとうございました。それが私の問題を助けました。私はdo-whileループ内でbreakを使うことができなかったことを認識しませんでした(クラスで議論されたことはありません)。 –

+0

まあ、この場合のブレークはfor-loopだけ存在します。前もって 'programSelection'を' false'に変更したので、do-whileループが残っています。あらゆる種類のループを残して、 'break'ステートメントで' switch'ブランチを残すこともできます。あなたはそれにラベルを付け、そのラベルをbreakステートメントで使用すると、外側のループを離れることさえできます。それで 'programSelection'変数を完全にスペアすることができます。 – Vampire

0

あなたは理由が正しいループを持っているので、forループです。

while (programSelection == true) 

は、forループの後にのみ実行されます。 loanArrayの長さが1の場合、コードはうまく動作すると思われるかもしれないので、実際にはそれは慎重である必要があります。

関連する問題