为什么这段代码没有给出编译时错误
package com.test;
public class Recursive {
public static int name(int number) {
if (number <= 0)
return 0;
return 1 + name(number / 10);
}
public static void main(String[] args) {
System.err.println(name(124));
}
}
答案 0 :(得分:0)
因为你没有写括号。每个循环if
或else
后面都可以跟一段代码({...}
)或单个语句。所以你的代码相当于:
package com.test;
public class Recursive {
public static int name(int number) {
if (number <= 0) {
return 0;
}
return 1 + name(number / 10);
}
public static void main(String[] args) {
System.err.println(name(124));
}
}
答案 1 :(得分:0)
您的代码等同于
if (n <0) {
return 0;
}
return 1 + name (n/10);
这完全合法的代码
答案 2 :(得分:-1)
没有编译时错误的原因是因为您的代码在语法上是正确的。如果代码没有按预期执行,请解释如何。