public static void main(String[] args) {
//call for input
System.out.println("Please Enter a 3-digit number..");
Scanner in = new Scanner(System.in);
int[] num = new int[3];
for (int i = 0; i < num.length; i++) {
int val = in.nextInt();
num[i] = val;
}
System.out.println("The Sum of the numbers is " + sumNums);
System.out.println("The Reverse of the numbers is " + reverseNums);
}
public int sumNums(int x) {
return num[0] + num[1] + num[2];
}
public in reverse(int x) {
return num[2] + num[1] + num[0];
}
我正在尝试创建一些添加分解数字的方法,例如,如果我输入123,则会导致1 + 2 + 3 = 6,但我一直得到“找不到符号”。我也是最有效地分解输入的方式吗?
答案 0 :(得分:0)
您的实施存在一些问题。
在println
中,您没有进行方法调用
System.out.println("The Sum of the numbers is " + sumNums);
System.out.println("The Reverse of the numbers is " + reverseNums );
应该是
System.out.println("The Sum of the numbers is " + sumNums(0));
System.out.println("The Reverse of the numbers is " + reverseNums(0) );
此外,您当前的sumNums
和reverseNums
方法未使用传入的参数,可能会将其删除...
答案 1 :(得分:0)
函数调用结束时的()
在java中不是可选的,因此在println
中,您需要说sumNums()
而不是sumNums
。 (int x
没有任何意义,我假设您将其删除。
还有其他问题..例如in
应该是int
,如果你想扭转这个数字,那么实际应该是String
..现在你所做的就是加起来。并且您可能希望将num
作为参数传递给其他函数,或者使其成为类成员。
答案 2 :(得分:0)
答案 3 :(得分:0)
如果我是你,我不会担心效率。现在,您的程序没有将任何输入到需要它的方法中。
这里有两件主要的事情:
您的方法不是static
,因此如果没有您的课程实例,则无法在main()
内调用它们(我们暂时将其称为TestClass
)。
您不会将从用户获得的任何信息传递给您的方法。这就是你遇到“无法找到符号”的原因 - num
在这些方法的范围内没有定义。
至少要解决后一个问题,你应该改变你的方法的签名来接受一个int数组而不是一个int:
public int sumNums(int[] num) {
return num[0] + num[1] + num[2];
}
public int reverse(int[] num) {
return num[2] + num[1] + num[0];
}
我不希望这两种方法的结果有任何不同,因为加法是可交换的。
实例化对象并调用方法,我作为练习留给读者。