我得到一个无法找到无法解决的符号错误

时间:2014-12-14 18:04:26

标签: java jgrasp

我收到这个错误,对我来说看起来我没有正确调用方法。我已经回顾了过去的答案,但据我所知,没有人专门解决过我的问题。这是一个课程项目。我意识到我在方法中的数学很可能还不正确但我需要让其余的工作然后处理不正确的输出。非常感谢!

这是我的代码:

import java.util.*;

public class PrintOutNumbersInReverse {

    static Scanner console = new Scanner(System.in);

    public static void main(String[] args) {
        // Gather Number
        System.out.print("Enter a number between 2 and 10 digits long ");
        int num = console.nextInt();

        System.out.println("your number is: " + num);

        // call method
        System.out.println("Your number in reverse is: " + reverse);

    }

    public static int reverse(int num, int rNum) {
        rNum = 0;
        while (num != 0) {
            rNum = rNum + num % 10;
            num = num / 10;
        }
    }
}

我的错误消息:

  

PrintOutNumbersInReverse.java:28:错误:找不到符号       System.out.println("你的数字反向是:" +反向);                                                          ^符号:变量反向位置:类PrintOutNumbersInReverse 1错误

3 个答案:

答案 0 :(得分:0)

将方法实施更改为:

public static int reverse (int num)
{

 int rNum = 0;
 ...

 return rNum;
}

和地方,即将此方法称为:

System.out.println ("Your number in reverse is: " +reverse(num));

然后应该没问题

答案 1 :(得分:0)

当复制粘贴到eclipse时,我发现了两件事:

1。)你的reverse()方法没有返回int,但是因为方法的签名是这样的:public static int reverse(int num, int rNum)。也许返回rNum,或者它背后的逻辑是什么?

2。)第二,您尚未在reverse方法中声明任何main变量。也许您想要reverse()的参数化调用?

看起来,您希望reverse()方法rNum中的输出参数。在java中,您无法通过引用传递基元,因此无论您在方法中使用rNum做什么,更改都只会出现在方法的范围内。因此,您可能想要计算某些内容并实际return计算结果。

答案 2 :(得分:0)

您需要使用reverse作为方法,而不是变量。此外,您传入的是未使用的变量:rNum。您在启动后立即在reverse(int num, int rNum);中看到,它将您的rNum设置为0.那么为什么传递一个数字会被设置为零?

我是通过手机完成的,但这应该是正常的代码:

 import java.util.*;

public class PrintOutNumbersInReverse {

    static Scanner console = new Scanner(System.in);

    public static void main(String[] args) {
       // Gather Number
       System.out.print("Enter a number between 2 and 10 digits long ");
       int num = console.nextInt();

       System.out.println("your number is: " + num);

       // call method
       System.out.println("Your number in reverse is: " + reverse(num)); //<-- notice how this is a method cause it has "()"

 }

public static int reverse(int num) {  //<-- this has "int num" in the "()". This is a parameter.  
    int rNum = 0;
    while (num != 0) {
        rNum = rNum + num % 10;
        num = num / 10;
    }
  }
}