2017-03-26 10 views
0

減価償却表を出力するために3つのパラメータがこの関数に渡されます。最初のループは年の合計を計算し、2番目のループはユーザーが入力したアイテムの耐用年数中の各年の減価償却を計算します。上記のSystem.out.printlnステートメントのヘッダーの下に正しい値を出力するように、2番目のループをコーディングするのに問題があります。ループは最初のループと同じループなので、ループは実行されません。年合計を使用したJava減価償却表ループ

public class Table 
    { 
    public void makeDepreciationTable(int useful_Life, double acquisition_Value, double salvage_Value) 
    { 
     int sum = 0; 
     int year = 1; 
     double accumulatedDepreciation; 
     // make a loop to calculate the sum 
     while (year <= useful_Life) 
     { 
      sum += year; 
      year++; 
     } 
     System.out.println("The sum is " +sum); 
     // write the header of the table 
     System.out.println(" Acquisition Value" + "" + " Salvage Value" + "" + " Useful Life" + "" + " Annual Depreciation" + "" + " Accumulated Depreciation" + "" + " Book Value" + "" +" Fraction"); 
     // make a loop 
     while (year <= useful_Life) 
     { 
      // calculate fraction 
      double fraction = (double)year/sum; 
      // calculate annualDepreciation 
      double annualDepreciation = (acquisition_Value - salvage_Value) * fraction ; 
      // calc accumulatedDepreciation 
      accumulatedDepreciation += annualDepreciation; 
      // calc bookValue 
      double bookValue = acquisition_Value - accumulatedDepreciation; 
      // write one line of table 
      System.out.println(acquisition_Value + "" + salvage_Value + "" + useful_Life + "" + annualDepreciation + "" + accumulatedDepreciation + "" + bookValue + "" + fraction); 
      year++; 
     } 



    } 
} 
+1

ようこそ!デバッグの助けを求める質問( "なぜこのコードは動作しないのですか?")には、目的の動作、_a特定の問題またはerror_を含める必要があります。明確な問題文がない質問は、他の読者にとって有用ではありません。参照:[最小限で完全で検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve) –

+0

"sum"が表すはずのものは明確ではありません。たとえば、useful_lifeが3の場合、最初のループは合計を1 + 2 + 3 = 6にします。なぜこの計算を行うためにループを使用するのですか?簡単な方程式で十分です。 – FredK

答えて

0

ループ、あなたは、以下のようにちょうど第二whileループ前に再び1にyear値をリセットする必要がありながらyearは、最初の終わりの間にuseful_Lifeに等しくなったので:

year = 1;//reset year before 2nd while 
while (year <= useful_Life) { 
    //add your code 
} 
0

2番目のループの前に年= 1を追加します。

最初のループの年の値が増分されるためです。しかし、2番目のループの前に戻さないでください。

関連する問題