如何使用Java在另一个方法中调用方法

时间:2014-07-30 00:49:47

标签: java methods

我创建了一个方法来测试数字是否是另一个数字的因子。

    private static boolean isFactor( int n, int d )
    {
        if (n % d == 0)
            return true;
        else
            return false;
    }

现在我被指示调用这个方法,“isFactor”,在我创建的另一种方法中如下:

    private static void printFactors( int n )
    {
        int divisor = 1;
        while (divisor <= n)
        {
            isFactor(n, divisor);
            if (isFactor == true)
                divisor++;
            else
                System.out.println("No factors found.");
            System.out.println("The factors of " + n + " are: " + divisor );
        }
   }

问题是我在运行时收到一条错误消息,说java找不到符号。我如何做到这一点,以便我的方法可以找到它的对应物?

3 个答案:

答案 0 :(得分:5)

  

问题是我在运行时收到一条错误消息,说java找不到符号

是的,这一点在此行中注明:

if (isFactor == true)

因为没有isFactor变量。相反,您应该在该行中调用该方法:

//isFactor(n, divisor);
if (isFactor(n, divisor)) //no need to put == true

注意:虽然上面的声明使您的代码可编辑,但它不会使其按预期工作。您应该将不同变量中的除数除数的数量分开。此外,您应该只打印消息找不到因素。当且仅当您发现该数字根本没有除数时,而不是每次测试除数时都是如此。

答案 1 :(得分:1)

您已将符号isFactor用作方法名称和变量名称。试试这个:

boolean result = isFactor(n, divisor);
if (result) { // No need to compare to true since it is boolean
 ...
}

答案 2 :(得分:0)

将来解决这类问题的最简单方法是查看堆栈跟踪:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    isFactor cannot be resolved to a variable

    at stack.Main.printFactors(Main.java:24)
    at stack.Main.main(Main.java:7)

这告诉我问题出在第24行(由第7行调用):

ln 7:      printFactors(100);
...
ln 18:     private static void printFactors( int n )
...
ln 24:     if (isFactor == true)

此外,任何体面的IDE(例如:Eclipse)都可以让您在不必运行程序的情况下找到这些类型的语法错误。