我有以下转换程序代码:
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);
}
当我已经拥有时,它说“可变输出可能没有被初始化”?
谢谢!
答案 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)
您刚刚在那里声明了与初始化变量不同的变量。