关于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回答

好帮手慕小尤

2019-10-17

同学你好,在循环外定义int j,会导致第二个循环无法根据第一个循环n的数量进行多次循环。建议同学将int j定义在第一个for循环的里面。修改后代码如下:

http://img.mukewang.com/climg/5da816620976d78f05010233.jpg

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

0

0 学习 · 11489 问题

查看课程