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

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

于 2012-05-17T14:29:33.250 回答
0

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

于 2012-05-17T14:31:06.943 回答