我有两个 Java 程序。
方案一
class Ideone
{
public static void main (String[] args)
{
double price = 10;
String model;
if (price > 10)
model = "Smartphone";
else if (price <= 10)
model = "landline";
System.out.println(model);
}
}
输出:- 变量模型可能尚未初始化(错误)
方案二:-
class Ideone
{
public static void main (String[] args)
{
double area = 10.98;
String color;
if (area < 5)
color = "red";
else
color = "blue";
System.out.println(color);
}
}
输出:- 蓝色
我的问题是,由于这两个程序几乎相似,为什么我得到的变量可能尚未初始化?
如果第一个程序出现问题,第二个程序不应该也会抛出相同的错误吗?
最佳答案
编译器足够智能。
在第二种情况下,您完全满足所有条件。在所有条件之后还有一个 else 部分需要保存。
但是在你的第一种情况下没有其他部分。这意味着如果没有通过任何条件,则那里有一个空白字段。
您必须提供一个 else 来确保初始化部分
double price = 10;
String model;
if (price > 10)
model = "Smartphone";
else if (price <= 10)
model = "landline";
else
model = null
或者提供默认值 null 或根据您的需要。
double price = 10;
String model =null;
if (price > 10)
model = "Smartphone";
else if (price <= 10)
model = "landline";
关于java - java编译时变量初始化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33166281/