Java新手,请帮助我的程序运行!我的任务是编写一个将整数转换为罗马数字的程序



我想我有正确的代码来进行转换(感谢用户Matt Bryant的帮助),但我现在对如何继续感到困惑。到目前为止,我学到了如何在主体中键入代码(公共静态 void main(String args[])),但我得到帮助的这段代码似乎不在 main 方法中。任何人都可以帮我运行此代码吗?:)(我也有一个错误,说我的扫描仪无法解析为类型/变量)。我知道主方法中没有编写任何内容,但这只是因为我不确定此时该怎么做。

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";
    }
}

你可以把 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();
    }

另一个问题是,ToRoman(int number)总是会在输出的末尾打印出"无效"。因此,您可以通过在 ToRoman(int 数字)中添加另一个基本情况条件来阻止该行为,例如:

    if(number == 0) return "";

顺便说一下,为了能够调用 ToRoman(int number),您需要将其定义为静态方法,或者创建类的对象,然后调用该方法。

要让它在你的主类中运行,你需要实例化它,然后调用你想要运行的方法,所以你可能希望在你的主类中出现这样的东西

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

此外,您的number变量没有分配类型,因为您正在阅读下一个 int,请像这样将int放在前面int number = myKeybaord.nextInt()

您还需要将以下 import 语句放在类文件的最顶部以导入Scanner类(刚刚意识到您确实有这个)

import java.util.Scanner;
请注意,惯例是类以大写字母

开头,方法应以每个内部单词的第一个字母大写命名。请参阅 Java 命名会议。

相关内容

  • 没有找到相关文章

最新更新