Java温度转换代码无法运行,请求排查编译错误(缺失return语句)
Java代码编译错误排查:缺失return语句问题
编译报错信息:
error: missing return statement } ^
问题原因
Java编译器要求所有代码路径必须有明确的return值。原代码中,虽然else if(1 < 10)这个条件永远为true,但编译器不会做常量条件的逻辑优化,它会默认存在该条件不成立的可能性,从而判定方法可能走到末尾却没有返回值,触发编译错误。
修复方案
最合理的修复是用else替代else if(1 < 10),这样能清晰表达“温度不大于30则返回cold”的逻辑,同时让编译器明确所有分支都有返回值:
public class quiz{ public static String celsius (double F){ double C = 5.0 / 9.0 *(F - 32) ; if(C > 30) return "hot"; else return "cold"; }//end method public static void main(String args[]){ System.out.println(celsius(70.0)); System.out.println(celsius(14.5)); }//end main }//end class
另一种可选修复(不推荐)
如果坚持保留原条件判断,也可以在方法末尾补充一个return语句,让编译器确认所有路径都有返回:
public class quiz{ public static String celsius (double F){ double C = 5.0 / 9.0 *(F - 32) ; if(C > 30) return "hot"; else if(1 < 10) return "cold"; return "cold"; // 补充返回语句,消除编译错误 }//end method public static void main(String args[]){ System.out.println(celsius(70.0)); System.out.println(celsius(14.5)); }//end main }//end class
内容的提问来源于stack exchange,提问作者ahmed abu awwad
相关产品推荐
相关产品推荐

