我是Java新手。我试图使用Scanner
找到数字的阶乘。我在p
收到错误,因为p
无法解析为变量。这是什么意思?
import java.util.Scanner;
public class fact {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner object = new Scanner(System.in);
System.out.println("enter a number:\n");
int i = object.nextInt();
int result = 1;
for (p = 1; p <= i; p++) {
result = result * 1;
System.out.println("factorial of a number is:result");
}
}
}
答案 0 :(得分:5)
这意味着您尚未定义变量p
(但您尝试在1
循环中将其初始化为for
。变化
for(p=1;p<=i;p++)
到
for(int p=1;p<=i;p++)
答案 1 :(得分:2)
您应该在p
循环中定义变量for
,就像您已定义i
变量一样:
for(int p = 1; p <= i; p++)
答案 2 :(得分:2)
这里有几个错误:
第一个(也是最重要的)是你永远不会定义p
。正如其他答案所说,请事先(int p;
)或在循环中定义它。
第二个是你实际上没有计算阶乘,这是一个额外的问题。但首先解决问题1,因为它是编译器错误。
第三是您实际上并未打印结果。您需要System.out.println("The result was: " + result)
。
此外,您可能不希望print语句在循环内...
答案 3 :(得分:0)
此代码有很多编译错误。以下是工作代码
import java.util.Scanner;
public class ScannerEx {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("enter a number:\n");
int number = scanner.nextInt();
int result = 1;
for(int p=1; p <=number ;p++) {
result= result*p;
}
System.out.println("Factorial of a number is " + result);
}
}