【发布时间】:2018-06-12 04:24:42
【问题描述】:
double runde(double x, int n) {
if (n < 0) {
throw new IllegalArgumentException("Anzahl der Nachkommastellen darf nicht negativ sein.");
return 0.0 ; }
if (n==x) {/* Ist n=x? Wenn ja, dann nicht runden*/
return x ; } /* X dementsprechend als Rückgabewert */
if (n>0) {/* Test ob n größer null ist*/
return Math.round(x*Math.pow(10,n))/Math.pow(10,n) ; }}
嘿,我不明白为什么 return 0.0 应该是一个无法访问的语句。 我试图构建一个将数字四舍五入到给定小数位的方法。
此外,还应缺少退货声明。
感谢您的帮助!
【问题讨论】:
-
如果抛出异常,则方法执行结束
-
因为你会在你的 if (n
-
良好的缩进有助于立即发现此类问题 ;-)
-
编译器无法确定您的某个 if 条件是否为真。因此,理论上,执行可以在最后一个 if 之后通过,然后返回丢失。
-
如果
n应该是一个精度,那么没有理由将它与x进行比较。
标签: java if-statement bluej unreachable-statement