该方法必须返回一个 int 类型
public int computeStyle(String season) {
if(season.equals("summer")){
if (this.style.equals("toque")){
return 8;
}
if (this.style.equals("sun visor")){
return 1;
}
if (this.style.equals("fedora")){
return 6;
}
}
else if(season.equals("winter")){
if (this.style.equals("toque")){
return 1;
}
if (this.style.equals("sun visor")){
return 8;
}
if (this.style.equals("fedora")){
return 7;
}
}
else return 5;
}
为什么我总是收到方法必须返回 int 类型的错误.这个功能有什么问题?它应该在所有可能的情况下都返回一个 int 对吧?
Why do I keep getting the error that the method must return type int. What is wrong with this function? It should return an int in every possible scenario right?
推荐答案
有两个路径没有涉及:
public int computeStyle(String season) {
if(season.equals("summer")){
if (this.style.equals("toque")){
return 8;
}
if (this.style.equals("sun visor")){
return 1;
}
if (this.style.equals("fedora")){
return 6;
}
//here
}
else if(season.equals("winter")){
if (this.style.equals("toque")){
return 1;
}
if (this.style.equals("sun visor")){
return 8;
}
if (this.style.equals("fedora")){
return 7;
}
//here
}
else return 5;
}
解决方法:用默认返回值声明一个变量并正确赋值:
Solution: declare a variable with the defaut return value and assign the value properly:
public int computeStyle(String season) {
int result = 5;
if(season.equals("summer")){
if (this.style.equals("toque")){
result = 8;
}
if (this.style.equals("sun visor")){
result = 1;
}
if (this.style.equals("fedora")){
result = 6;
}
}
else if(season.equals("winter")){
if (this.style.equals("toque")){
result = 1;
}
if (this.style.equals("sun visor")){
result = 8;
}
if (this.style.equals("fedora")){
result = 7;
}
}
return result;
}
相关文章