Ultra java noob在这里,我确信它可能是一个愚蠢的错误。有人在乎纠正我吗?
public class Test1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
int n = 4;
public void f(int n){
System.out.print(n);
if(n<=1)
return;
else{
f(n/2);
f(n/2);
}
}
}
我收到了这个错误:
Exception in thread "main" java.lang.RuntimeException:
Uncompilable source code - illegal start of expression at the
public void f(int n)
答案 0 :(得分:3)
您无法在Java中的方法中声明方法。您在}
之前的某处错过了public void f(int n)
。
答案 1 :(得分:3)
结构需要有所不同,尝试这种方法:
public class Test {
public static void main(final String[] args) {
f(4);
}
public static void f(final int n) {
System.out.print(n);
if (n <= 1) {
return;
} else {
f(n / 2);
f(n / 2);
}
}
}
答案 2 :(得分:1)
这样做:
public static void main(String[] args)
{
// TODO code application logic here
int n = 4;
f(n);
}
public void f(int n)
{
System.out.print(n);
if( n <= 1)
{
return;
}
else
{
f(n/2);
}
}
答案 3 :(得分:0)
因为对于编译器,您的代码看起来像这样
public class Test1 {
public static void main(String[] args) {
int n = 4;
public void f(int n) {
System.out.print(n);
if (n <= 1)
return;
else {
f(n / 2);
f(n / 2);
}
}
}
所以它有2个错误
1)您正尝试在方法中创建方法(f
内的main
)
2)在课程结束时没有}