2011-10-26 30 views
1

"bonusStr"変数をdoubleに変換しようとしていますので、計算に使うことができます。しかし、コンパイルしようとすると、 "variable bonusStrが初期化されていない可能性があります"というエラーが表示されます。私はこれが本当に初心者の質問だと知っていますが、何か助けていただければ幸いです。Valriableが初期化されていない可能性がありますか?

多くの感謝!

数分で非常に多くの回答を期待していませんでした。問題を解決しました。みなさんありがとう。それは価値があるまで、あなたはDouble.parseDouble内でそれを使用するべきではありませんので:-)エラー状態bonusStrとして

import static javax.swing.JOptionPane.*; 
import java.text.DecimalFormat; 

class Question3 { 

public static void main(String[] args) { 

    String intrestRateStr = showInputDialog("What is the interest rate?");  
     int intrestRate = Integer.parseInt(intrestRateStr); 

    String depositStr = showInputDialog("How much will you deposit?"); 
     double depositAmount = Double.parseDouble(depositStr); 

    DecimalFormat pounds = new DecimalFormat("£###,##0.00"); 

    double amountInterest = calcAmount(intrestRate, depositAmount); 

    String bonusStr; 
      double bonus = Double.parseDouble(bonusStr); 

    if (amountInterest >= 5000.00) 
     bonus = (+100.00); 
    else if (amountInterest >= 1000.00) 
     bonus = (+50.00); 


    double finalAmountInterestBonus = bonus + amountInterest; 

    showMessageDialog(null, 
      "Your savings will become " + pounds.format(finalAmountInterestBonus)); 
} 

private static double calcAmount(int intRate, double depAmount) { 
    double result = depAmount*(1.0 + intRate/100.0); 
    return result; 
} 
} 

答えて

1
String bonusStr; 
double bonus = Double.parseDouble(bonusStr); 

は、(あなたはそれに値に影響を与えなかった)初期化されていません。

1
String bonusStr; 
      double bonus = Double.parseDouble(bonusStr); 

あなたはbonusStrに値を設定することはありません - デフォルトではnullになるだろう。あなたは値を与える前にそれを使用しています。試してみてください:

String bonusStr = "0"; 

それはそれをデフォルト値を与えることをお勧めします、0を言うか何かは、あなたが適切な値を与えることを忘れていることを診断するのに役立つことができます。

0

プログラムはNumberFormatExceptionを発生させます。あなたは、値を持たない文字列のparseDoubleを行います。 parseDoubleを実行する前に、bonusStrに値を設定する必要があります。

関連する問題