-1

特に「gcd();」を呼び出すメインプログラムで、コードのコンパイルに問題があります。括弧内には何を入れればよいですか?ありがとうございました。

import java.util.Scanner;

public class gcd {

    public static void main(String[] args) {
        gcd();
    }

    public static int gcd(int a, int b) {
        Scanner console = new Scanner(System.in);
        System.out.println("Please enter the number 1 & 2: ");
        a = console.nextInt();
        b = console.nextInt();
        if (b == 0) 
            return a;
        else return (gcd (b, a % b));
    }
}
4

3 に答える 3

4

gcdメソッドは 2 つの整数引数を取るため、gcd()コンパイルされません。ここですべきことは、IO と計算を分離することだと思います。おそらく IO をメイン メソッドに移動します。

public static void main(String[] args) {
    Scanner console = new Scanner(System.in);
    System.out.println("Please enter the number 1 & 2: ");
    int a = console.nextInt();
    int b = console.nextInt();
    System.out.println(gcd(a, b));  // notice the two int arguments
}

public static int gcd(int a, int b) {  // no IO, only gcd calculation
    if (b == 0) 
        return a;
    else return (gcd(b, a % b));
}

通常、プログラムを「論理的な」コンポーネントに分割することをお勧めします。上記の例では、mainメソッドは IO をgcd処理し、実際の計算を処理します。

于 2012-12-03T03:19:44.470 に答える
2

括弧を使用すると、メソッドにデータを渡すことができます。この場合、(と) に 2 つintの を渡します。gdcab

メソッドを定義するとき、括弧の間とその後の部分は、public static int gcdどの変数をメソッドに渡す必要があるかをメソッドに伝える場所です。

于 2012-12-03T03:20:32.570 に答える
2

gcd メソッドには 2 つの整数値 (a と b) があるため、2 つの整数値を渡してメソッドを呼び出す必要があります。

例:gcd(3, 5);

または、int 型の 2 つの変数を渡すことができます。

于 2012-12-03T03:21:17.230 に答える