为什么我的Java代码不执行System.out.println?
我正在使用Netbeans IDE,它没有检测到任何bug。我只是好奇为什么这段代码没有执行。仅供参考,这是“思考Java:如何像计算机科学家一样思考”中的练习4.4为什么我的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
您从不从
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);
}