变量可能尚未初始化?

时间:2012-05-17 14:26:06

标签: java string types methods

我有以下转换程序代码:

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); 
}

当我已经拥有时,它说“可变输出可能没有被初始化”?

谢谢!

3 个答案:

答案 0 :(得分: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 = "";
}

当然,第一种选择是最好的。

答案 1 :(得分:0)

如果键入!= 1,则不初始化输出。即使你在每个if分支(1,2,3,4)中给输出一个值,也可能没有初始化输出,就像type< 1或> 4它仍然没有价值。

答案 2 :(得分:0)

您刚刚在那里声明了与初始化变量不同的变量。