关于int 在for循环
来源:5-2 案例:阶乘的累加和
A哥s
2019-10-17 11:59:20
int sum=0;
int s=1;
System.out.println("请输入你要求的阶乘");
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
for(int n=1;n<=a;n++) {
s=1;
for(int j=1;j<=n;j++) {
s=s*j;
}
sum+=s;
} System.out.println("1到"+a+"的阶乘是:"+sum);
如果我改成这样
int sum=0;
int s=1;
int j=1;
int n=1;
System.out.println("请输入你要求的阶乘");
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
for(;n<=a;n++) {
s=1;
for(;j<=n;j++) {
s=s*j;
}
sum+=s;
} System.out.println("1到"+a+"的阶乘是:"+sum);
为什么就变成累加了呢?
1回答
同学你好,在循环外定义int j,会导致第二个循环无法根据第一个循环n的数量进行多次循环。建议同学将int j定义在第一个for循环的里面。修改后代码如下:

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题