问题描述
在此代码中,我无法在 facto1() 方法中调用 user() 方法,但我无法访问 n 的值循环
import java.util.*;
public class fecto {
//Scanner sc = new Scanner(system.in);
//int n;
public int user() {
Scanner sc = new Scanner(system.in);
int n;
System.out.println("Enter the number:");
n = sc.nextInt();
return n;
}
public int facto1() {
int i,fac = 1;
//int p = user();
//System.out.println(p);
user()
for (i = 0; i <= n; i++) {
fac = fac * i;
}
return fac;
}
public static void main(String[] args) {
fecto fe = new fecto();
fe.facto1();
}
}
解决方法
对 user()
的调用不在本地存储结果。改变
//int p = user();
//System.out.println(p);
user()
for (i = 0; i <= n; i++) {
到
int n = user(); // <-- you want `n`,not `p`.
for (i = 1; i <= n; i++) { // <-- 0 * x == 0,do not start with i = 0
此外,在 main
中,您不会打印结果。
fecto fe = new fecto();
int result = fe.facto1();
System.out.println(result);