1
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,但我不断收到“找不到符号”。我分解输入的方式也是最有效的吗?

4

4 回答 4

0

函数调用的()末尾在 java 中不是可选的,所以在你println的 s 中,你需要说sumNums()而不是sumNums. (没有意义int x,我假设您将其删除。

还有其他问题..例如in应该是intString如果您想反转数字,实际上应该是..现在您所做的就是将它们相加。而且您可能希望将num其作为参数传递给其他函数,或者使其成为类成员..

于 2013-08-27T02:46:04.823 回答
0
  1. 您的最后一个方法的返回类型有错字。
  2. 您需要从主要方法(作为字段)中定义数组 num,或者其他方法不知道这个变量(方法:OMG,num 是什么?)
  3. 调用方法是这样的:methodName(params...)
  4. 我认为您不需要在这些方法中使用 par "x"。
  5. 我建议你尝试更好的代码风格
于 2013-08-27T02:47:19.980 回答
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) );

此外,您的当前sumNumsreverseNums方法没有使用传入的参数,它们可能会被删除......

于 2013-08-27T02:40:21.963 回答
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];
}

不过,我不希望这两种方法的结果有任何不同,因为加法是可交换的。

实例化对象并调用方法,我留给读者作为练习。

于 2013-08-27T02:54:21.097 回答