2

ここに私が書いたものがありますが、これはかなり基本的なものです:

import java.util.Scanner;

public class Projet {

    /**
     * @param args
     * @param Scanner 
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("Enter a digit");
        Scanner in = new Scanner(System.in);
        getChoice(Scanner);
        in.close();
    }

    public static int getChoice(Scanner n){
        n = in.nextInt();
        return n;
    }
}

ここで何が間違っているようですか?以前に機能していましたが、スキャナーの型引数名をパラメーターとして関数に渡す必要がありました...そして、スキャナーの型と引数を関数の引数として使用して、メインでその関数を呼び出すだけですか?

- - -編集 - - -

それを必要とする以下の新しいコード:

import java.util.Scanner;

public class Projet {

    /**
     * @param args
     * @param Scanner 
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("Enter a digit");
        Scanner in = new Scanner(System.in);
        System.out.println(getChoice(in));
        in.close();
    }

    public static int getChoice(Scanner in){
        return in.nextInt();
    }
}

@rgettmanありがとう!

4

1 に答える 1

2

inメソッドを呼び出すときは、クラス名ではなく、実際の変数名を渡す必要がありますScanner

getChoice(in);

それ以外の

getChoice(Scanner);

ちなみに、あなたのgetChoiceメソッドは示されているようにコンパイルされません。intを返すように宣言getChoiceしたように、スキャナーが返すもの、つまり を返すだけintです。

public static int getChoice(Scanner n){
    return n.nextInt();
}
于 2013-05-17T00:43:06.833 に答える