2017-03-05 8 views
-3

私は以下のコードを使用して複利プログラムを実行していますが、なぜ機能していないのかわかりません。 Eclipseは私にエラーメッセージを出しています: "ローカル変数の値は使用されていません。"警告は声明の中で計算された量が使用されていない中であることを通知することである化合物関心プログラム構文エラー

for (int i = 1; i<=20; i++){ 
    double amount = deposit * Math.pow(1+(rate/compound), years*compound); 
    System.out.println(amount); // just a type of use 
} 

-

package loops; 

public class CompoundInterest { 


    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     System.out.println("How much did you put into the bank?"); 
     double deposit = IO.readDouble(); 
     System.out.println("What is the bank's interest rate?"); 
     double rate = IO.readDouble(); 
     System.out.println("How many times will it compound?"); 
     double compound = IO.readDouble(); 
     System.out.println("How many years?"); 
     double years = IO.readDouble(); 

     for (int i = 1; i<=20; i++){ 
      double amount = deposit * Math.pow(1+(rate/compound), years*compound); 
     } 

    } 

} 
+6

決して出力を出すことはないので、あなたの計算がすべて電子移動を無駄にしていることを警告しています。 – bmargulies

+0

ええ、私はちょうどそれを実現しました。ありがとうございました。 – Chris

+1

同じ計算を20回繰り返すのはなぜですか?使用した数式を使用すると、計算を一度行うだけで済みます。 –

答えて

0

厳密に言えば、これはコンパイラの警告です(エラーではありません)。実際には使用しない変数を持つことは技術的には「合法」ですが、おそらく間違いであることをコンパイラが指示しています。この場合、他の人が指摘したように、amountに値を割り当てますが、実際には何もしません。

一般的なヒントとして、警告のテキストに細心の注意を払うと便利です(この場合は、amount変数では何もしません)。 Eric Lippertさんは、小さなプログラムをデバッグする方法について、非常に有益なarticleを利用しています。私はあなたがチャンスを取ったときにそれを見てみることをお勧めします。 (彼の「ゴム鴨のデバッグ」の説明だけでは、記事を読む価値がある以上のものになります)。

0

ちょうどamountとして使用するために、ループ内のステートメントを追加します。一度使用すると(上のように表示する場合でも)、警告は消えてしまいます。

0

なぜ変数を宣言し、プログラムで使用しない場合は初期化するのですか?これは、コンパイラがこのエラーを投げてあなたに求めていることです。

amountの値を印刷するなどの方法でプログラム内で変数amountを使用すると、このエラーは消えます。