0

変換を行うための適切なコードを持っていると思います (ユーザーの Matt Bryant の助けに感謝します)。これまでに学んだことは、本体にコードを入力する方法 (public static void main(String args[])) ですが、支援を受けたこのコードはメイン メソッドに入っていないようです。このコードを実行するのを手伝ってくれる人はいますか? :) (また、スキャナーがタイプ/変数に解決できないというエラーがあります)。メインメソッドに何も書いていないことは承知していますが、それは、この時点で何をすべきかわからないためです。

import java.util.Scanner;

public class romannumeralconversion {

    public static void main(String args[]) {

    }

    public String ToRoman() {

        Scanner myKeyboard = new Scanner(System.in);
        System.out.println("Enter the integer: ");
         number = myKeyboard.nextInt();
        myKeyboard.close();
        return ToRoman(number);

    }

    public String ToRoman(int number) {

        if ((number < 1 || (number > 3999)))

            return "INVALID";

        if (number >= 1000)
            return "M" + ToRoman(number - 1000);

        if (number >= 900)
            return "CM" + ToRoman(number - 900);

        if (number >= 500)
            return "D" + ToRoman(number - 500);

        if (number >= 400)
            return "CD" + ToRoman(number - 400);

        if (number >= 100)
            return "C" + ToRoman(number - 100);

        if (number >= 90)
            return "XC" + ToRoman(number - 90);

        if (number >= 50)
            return "L" + ToRoman(number - 50);

        if (number >= 40)
            return "XL" + ToRoman(number - 40);

        if (number >= 10)
            return "X" + ToRoman(number - 10);

        if (number >= 9)
            return "IX" + ToRoman(number - 9);

        if (number >= 5)
            return "V" + ToRoman(number - 5);

        if (number >= 4)
            return "IV" + ToRoman(number - 4);

        if (number >= 1)
            return "I" + ToRoman(number - 1);

        return "INVALID";
    }
}
4

2 に答える 2

1

メインクラスで実行するには、インスタンス化してから実行したいメソッドを呼び出す必要があるため、おそらくメインクラスでこのようなものが必要になるでしょう

romannumeralconversion rnc = new romannumeralconversion();
System.out.println(rnc.ToRoman());

また、number変数には型が割り当てられていません。次の int を読んでいるので、intこのように前 に置きますint number = myKeybaord.nextInt()

クラスをインポートするには、クラスファイルの一番上に次のインポートステートメントを配置する必要もありますScanner(これがあることに気づきました)

import java.util.Scanner;

クラスは大文字で始まり、メソッドは各内部単語の最初の文字を大文字にして名前を付けるべきであることに注意してください。Java命名規則を参照してください。

于 2013-10-02T23:02:41.263 に答える
1

ToRoman() のコードをメイン ブロックに配置し、そこから ToRoman(int number) を呼び出すことができます。

    public static void main(String args[]) {
        Scanner myKeyboard = new Scanner (System.in);
        System.out.println("Enter the integer: ");
        int number = myKeyboard.nextInt();
        System.out.println(ToRoman(number));
        myKeyboard.close();
    }

もう 1 つの問題は、ToRoman(int number) が出力の最後に常に "INVALID" を出力することです。したがって、次のような ToRoman(int number) に別の基本ケース条件を追加することで、その動作を停止できます。

    if(number == 0) return "";

ちなみに、ToRoman(int number)を呼び出せるようにするには、静的メソッドとして定義するか、クラスのオブジェクトを作成してからメソッドを呼び出す必要があります。

于 2013-10-02T23:08:45.453 に答える