如何解决根据id计算年龄
public int payment(){
int Carpayment;
int hour;
String type;
if (type == "MyVi")
Carpayment = 10 * hour;
else
if (type == "Iswara")
Carpayment = 15 * hour;
else
if (type == "Waja")
Carpayment = 20 * hour;
else
if (type == "Vios")
Carpayment = 25 * hour;
else
if (type == "Civic")
Carpayment = 30 * hour;
return Carpayment;
}
当我运行此代码时..错误 Carpayment 可能尚未初始化
解决方法
你可以做的一些整改
-
比较 type == "MyVi" ,您不应该将字符串与 == 运算符进行比较,因为它将比较对象,即哈希码比较。 你应该使用 type.equals("MyVi");
-
您不应使用局部变量来计算汽车付款,因为它们需要初始化,因此您应该将它们传递给付款方式或将它们用作实例变量。
public int payment(int Carpayment,int hour,String type){ //int Carpayment; //int hour; //String type; if (type == "MyVi") Carpayment = 10 * hour; else if (type == "Iswara") Carpayment = 15 * hour; else if (type == "Waja") Carpayment = 20 * hour; else if (type == "Vios") Carpayment = 25 * hour; else if (type == "Civic") Carpayment = 30 * hour; return Carpayment; }
3.你可以这样做
Class Car {
int Carpayment;
int hour;
String type;
Car(int hour,String type) {
this.hour = hour;
this.type = type;
}
public int payment(){
if (type == "MyVi")
Carpayment = 10 * hour;
else
if (type == "Iswara")
Carpayment = 15 * hour;
else
if (type == "Waja")
Carpayment = 20 * hour;
else
if (type == "Vios")
Carpayment = 25 * hour;
else
if (type == "Civic")
Carpayment = 30 * hour;
return Carpayment;
}
}
Car civic_1 = new Car(4,"Civic");
System.out.println(civic_1.payment());//Prints the Car payment to be done
,
发生这种情况是因为您没有最后一个 else 子句。因此,您可以通过所有 ifs 并且不要进入任何人。要解决此问题,您可以:
-
使用默认值初始化 Carpayment 变量(我认为更好的选择);
public int payment(){ int Carpayment; int hour; String type; if (type == "MyVi") Carpayment = 10 * hour; else if (type == "Iswara") Carpayment = 15 * hour; else if (type == "Waja") Carpayment = 20 * hour; else if (type == "Vios") Carpayment = 25 * hour; else if (type == "Civic") Carpayment = 30 * hour; return Carpayment; }
或
-
将最后一个 else 子句放在最后一个 else if 中。
public int payment(){ int Carpayment; int hour; String type; if (type == "MyVi") Carpayment = 10 * hour; else if (type == "Iswara") Carpayment = 15 * hour; else if (type == "Waja") Carpayment = 20 * hour; else if (type == "Vios") Carpayment = 25 * hour; else if (type == "Civic") Carpayment = 30 * hour; else Carpayment = 0; return Carpayment; }
局部变量不是默认值初始化的,在初始化之前尝试使用时会抛出编译器时间错误。
因此,在您返回之前初始化 Carpayment。
public int payment(){
int Carpayment = 0;
int hour;
String type;
if (type == "MyVi")
Carpayment = 10 * hour;
else
if (type == "Iswara")
Carpayment = 15 * hour;
else
if (type == "Waja")
Carpayment = 20 * hour;
else
if (type == "Vios")
Carpayment = 25 * hour;
else
if (type == "Civic")
Carpayment = 30 * hour;
return Carpayment;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。