1

変換プログラムの次のコードがあります。

private void convertButtonActionPerformed(java.awt.event.ActionEvent evt) {

    int type, value;
    double conversion;
    String output;

    type = Integer.parseInt(conversionchoiceInput.getText());
    value = Integer.parseInt(valueInput.getText());

    if (type == 1)
    {
    conversion = inchesToCentimetres(value);
    output = value + " inches = " + Math.round(conversion) + " centimetres";
    }
    else if (type == 2)
    {

    }
    else if (type == 3)
    {

    }
    else if (type == 4)
    {

    }
    outputLabel.setText(output); 
}

すでに持っているのに、「変数出力が初期化されていない可能性があります」と表示されますか?

ありがとう!

4

3 に答える 3

4

問題はoutput、プログラムの実行パスに関係なく、初期化する必要があることです。パスでのみ初期化されifます。したがって、最初に(空の文字列などの)デフォルト値を与えるか、すべてのブランチに設定する必要があります。

String output = "";

また

if (type == 1)
{
    conversion = inchesToCentimetres(value);
    output = value + " inches = " + Math.round(conversion) + " centimetres";
}
else if (type == 2)
{
    output = "";
}
else if (type == 3)
{
    output = "";
}
else if (type == 4)
{
    output = "";
}

当然、最初のオプションが最適です。

于 2012-05-17T14:28:33.903 に答える
0

変数を宣言したところ、初期化とは異なります。

于 2012-05-17T14:31:06.943 に答える
0

type != 1 の場合、出力は初期化されません。また、if 分岐 (1、2、3、4) のそれぞれで出力に値を指定しても、出力が初期化されていない可能性があります。タイプ < 1 または > 4 の場合はまだ値がありません。

于 2012-05-17T14:29:33.250 に答える