0

ここで超 Java 初心者、おそらくばかげた間違いだと確信しています。私を訂正する気はありますか?

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)
4

4 に答える 4

3

Javaのメソッド内でメソッドを宣言することはできません。あなたは}前のどこかで行方不明ですpublic void f(int n)

于 2012-06-23T20:47:17.673 に答える
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);
        }
    }
}
于 2012-06-23T20:48:47.220 に答える
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);
    }
}
于 2012-06-23T20:47:28.907 に答える
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)}授業の終わりにいいえ

于 2012-06-23T20:53:29.553 に答える