帮解JAVA程序题?

来源:百度知道 编辑:UC知道 时间:2024/06/07 05:19:52
class a
{
public static void main(String args[])

{
int n=90;
for(int i=2;i<=n;i++)
{
if(n%i==0)
{
n/=i;
System.out.println(""+i);
i=1;

}
}

}
}这段代码题目是分解90的质因数。在IF语句中为什么有i=1这一项,如果不写这项 打印出来的就是2 5 3.少了一个3。为什么要打I=1 才会多打印个3啊?帮忙解释下哈

因为需要把i值重新从 2 开始循环,因为循环中下一个数字是 i + 1;
所以把 i 设置为 1 后,就是还从 2 开始循环。

比如 16 就能输出是 2 2 2 2,否则只能输入一个2

都需要把i设成值1, 不然循环后i 变成 i+1 了

i=1以后就是以2开始循环了。。不加的话就是i+1开始循环。。因为有可能因数有多个2或者多个3.。所以每次循环都要从2开始。