Java新手,请帮助运行我的程序!我的任务是写一个将整数转换成罗马数字的程序
我想我有适当的代码来进行转换(感谢用户Matt Bryant的帮助),但我现在不知道如何继续。到目前为止,我学到了如何在主体(publicstaticvoidmain(stringargs[])中键入代码,但是我得到帮助的这段代码似乎不在main方法中。有人能帮我运行这个代码吗?:)(还有一个错误,我的扫描仪无法解析为类型/变量)。我知道主方法中没有写入任何内容,但这只是因为我不确定此时该做什么Java新手,请帮助运行我的程序!我的任务是写一个将整数转换成罗马数字的程序,java,types,java.util.scanner,main,roman-numerals,Java,Types,Java.util.scanner,Main,Roman Numerals,我想我有适当的代码来进行转换(感谢用户Matt Bryant的帮助),但我现在不知道如何继续。到目前为止,我学到了如何在主体(publicstaticvoidmain(stringargs[])中键入代码,但是我得到帮助的这段代码似乎不在main方法中。有人能帮我运行这个代码吗?:)(还有一个错误,我的扫描仪无法解析为类型/变量)。我知道主方法中没有写入任何内容,但这只是因为我不确定此时该做什么 import java.util.Scanner; public class romannumer
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";
}
}
import java.util.Scanner;
公共类转换{
公共静态void main(字符串参数[]){
}
公共字符串ToRoman(){
扫描仪myKeyboard=新扫描仪(System.in);
System.out.println(“输入整数:”);
number=myKeyboard.nextInt();
myKeyboard.close();
返回托罗曼(编号);
}
公共字符串ToRoman(整数){
如果((编号<1 | |(编号>3999)))
返回“无效”;
如果(数字>=1000)
返回“M”+ToRoman(数字-1000);
如果(编号>=900)
返回“CM”+ToRoman(编号-900);
如果(数字>=500)
返回“D”+ToRoman(编号-500);
如果(数字>=400)
返回“CD”+ToRoman(编号-400);
如果(数字>=100)
返回“C”+ToRoman(数字-100);
如果(数字>=90)
返回“XC”+ToRoman(数字-90);
如果(数字>=50)
返回“L”+ToRoman(数字-50);
如果(数字>=40)
返回“XL”+ToRoman(数字-40);
如果(数字>=10)
返回“X”+托罗曼(数字-10);
如果(数字>=9)
返回“IX”+托洛曼(数字-9);
如果(数字>=5)
返回“V”+ToRoman(数字-5);
如果(数字>=4)
返回“IV”+托罗曼(数字-4);
如果(数字>=1)
返回“I”+ToRoman(数字-1);
返回“无效”;
}
}
要使它在主类中运行,您需要实例化它,然后调用要运行的方法,因此您可能需要在主类中使用类似的方法
romannumeralconversion rnc = new romannumeralconversion();
System.out.println(rnc.ToRoman());
另外,您的number
变量没有指定类型,当您在读取下一个int时,将int
放在前面,如下所示int number=myKeybaord.nextInt()
您还需要将下面的import语句放在类文件的最顶部,以导入Scanner
类(刚刚意识到您有这个)
请注意,惯例是类以大写字母开头,方法的命名应以每个内部单词的首字母大写。请参阅java。您可以将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)总是在输出的末尾打印一个“INVALID”。因此,您可以通过在ToRoman(int number)中添加另一个基本情况条件来停止该行为,如:
顺便说一下,为了能够调用ToRoman(int number),您需要将其定义为静态方法,或者创建类的对象,然后调用该方法 方法字符串toRoman需要返回一个字符串,但返回的是一个int值,而字符串是toRoman(number);?在扫描代码下,我写下了返回托罗曼(编号);谢谢,我按照你说的把赋值整型放在数字上,但是我仍然收到一条错误消息,说扫描仪无法解析为一个类型。太好了,非常感谢你。最后一件事,该程序正在运行,但每当我输入一个整数,它会给我正确的答案,后面跟着“无效”。例如:我输入整数3,它输出IINVALID。我需要一个特定的else if语句吗?实际上我没有意识到,但用户Niki回答了这个问题!
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();
}
if(number == 0) return "";