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

如何使用Java在另一个方法中调用方法,java,methods,Java,Methods,我创建了一个方法来测试一个数字是否是另一个数字的因子 private static boolean isFactor( int n, int d ) { if (n % d == 0) return true; else return false; } 现在,我被指示在我创建的另一个方法中调用此方法isFactor,如下所示: private static void printFac

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

    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找不到符号。我如何制作它,以便我的方法能够找到它的对应项

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

是的,这一点在这一行中有所说明:

if (isFactor == true)
因为没有isFactor变量。相反,您应该调用该行中的方法:

//isFactor(n, divisor);
if (isFactor(n, divisor)) //no need to put == true
注意:虽然上面的语句使您的代码可编译,但它不会使代码按预期工作。您应该在不同的变量中分隔数字的除数和除数的数量。此外,您应该只打印未找到因素的消息。当且仅当您发现该数字根本没有除数时,而不是每次测试除数时都打开。

您使用符号isFactor作为方法名和变量名。试试这个:

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

将来解决此类问题的最简单方法是查看stacktrace:

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)
此外,任何像样的ideex:Eclipse都允许您在不运行程序的情况下查找这些类型的语法错误


非常感谢。我会尽快接受答案@WeekzGod一定要读这篇文章的最后一段,我从来没听说过。谢谢我会调查的!。