在Java中操作输入

时间:2013-08-27 02:35:36

标签: java

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 个答案:

答案 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) );

此外,您当前的sumNumsreverseNums方法未使用传入的参数,可能会将其删除...

答案 1 :(得分:0)

函数调用结束时的()在java中不是可选的,因此在println中,您需要说sumNums()而不是sumNums。 (int x没有任何意义,我假设您将其删除。

还有其他问题..例如in应该是int,如果你想扭转这个数字,那么实际应该是String ..现在你所做的就是加起来。并且您可能希望将num作为参数传递给其他函数,或者使其成为类成员。

答案 2 :(得分:0)

  1. 您的上一个方法的返回类型有拼写错误。
  2. 你需要在main方法中定义数组num(作为一个字段),或者其他方法不知道这个变量(方法:OMG,什么是num?)
  3. 调用方法就像:methodName(params ...)
  4. 我认为你不需要在这些方法中使用par“x”。
  5. 我建议您尝试更好的代码风格

答案 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];
}

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

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