为什么我的Java代码不执行System.out.println?

为什么我的Java代码不执行System.out.println?,java,main,Java,Main,我正在使用Netbeans IDE,它没有检测到任何bug。我只是好奇为什么这段代码没有执行。仅供参考,这是“思考Java:如何像计算机科学家一样思考”中的练习4.4 您从不从main调用checkFermat函数。Java程序中执行的唯一代码是main中的代码。您定义的任何其他方法只有在从main中调用时才会执行。因此,您的代码应为: import java.lang.Math; public class Exercise { public static void checkFerm

我正在使用Netbeans IDE,它没有检测到任何bug。我只是好奇为什么这段代码没有执行。仅供参考,这是“思考Java:如何像计算机科学家一样思考”中的练习4.4


您从不从
main
调用
checkFermat
函数。Java程序中执行的唯一代码是
main
中的代码。您定义的任何其他方法只有在从main中调用时才会执行。因此,您的代码应为:

import java.lang.Math;

public class Exercise {
    public static void checkFermat(int a, int b, int c, int n){

        if ((Math.pow(a, n))+(Math.pow(b, n))==(Math.pow(c, n)) && n!=2){
            System.out.println("Holy smokes, Fermat was wrong!");
        }
        else{
            System.out.println("No, why would that work?");
        }
    }

    public static void main(String args[]){
        int a = 8;
        int b = 4;
        int c = 10;
        int n = 3;

        checkFermat(a, b, c, n); //call the method here
    }
}

此外,局部变量
a
b
c
n
不会自动应用于函数。必须将它们作为参数显式传递。注意
main
中的
a
b
c
n
变量与
a
b
c
完全分离,和
checkFermat
中的
n
:它们是单独的变量,因为它们在单独的函数中声明。

因为您没有调用main中的
checkFermat
方法

试试看


更新主方法:

public static void main(String args[]){
        int a = 8;
        int b = 4;
        int c = 10;
        int n = 3;
        Exercise.checkFermet(a,b,c,n);
    }

执行System.out.println()语句您需要调用checkFermat函数而不调用它,它永远不会执行该语句,但当您调用该语句时,主函数将调用checkformat并执行该函数中编写的代码…

您只需像下面那样调用方法checkFermat即可

练习。检查Fermat(a、b、c、n)或

练习e=新练习();
e、 checkFermat(a,b,c,n)

…因为你从不打电话给checkFermat?我不同意反对票。如果海报(显然)在学习Java,那么这是一个非常合理的问题。仅仅因为答案对一个有经验的程序员来说是显而易见的,并不意味着它对一个初学者来说是显而易见的。@EricJ。非常感谢,我不知道没有你们我该怎么办。:)
public static void main(String args[]){
        int a = 8;
        int b = 4;
        int c = 10;
        int n = 3;
        checkFermat(a,b,c,n);

 }
public static void main(String args[]){
        int a = 8;
        int b = 4;
        int c = 10;
        int n = 3;
        Exercise.checkFermet(a,b,c,n);
    }