简单Java错误
这是一个java的阶乘程序,它不工作,请告诉我错误。谢谢简单Java错误,java,coding-style,Java,Coding Style,这是一个java的阶乘程序,它不工作,请告诉我错误。谢谢 class Fact { public static void main(String[] args) { int i=5,num=1; while(i>1) { num=num*i; } i--; System.out.println("Value: " + num); } } 如果变量i应该在循环内部,则在循环外部减少该
class Fact {
public static void main(String[] args) {
int i=5,num=1;
while(i>1) {
num=num*i;
}
i--;
System.out.println("Value: " + num);
}
}
如果变量
i
应该在循环内部,则在循环外部减少该变量
while(i>1)
{
num=num*i;
}
i--;
应该是:
while(i>1)
{
num=num*i;
i--;
}
当前代码的意思是,当*i*大于1时,进行乘法运算
。问题是,i将始终大于1,因为您从未从中减去 将变量i
减少到之外,而循环应该在其内部时,则减少该变量
while(i>1)
{
num=num*i;
}
i--;
应该是:
while(i>1)
{
num=num*i;
i--;
}
当前代码的意思是,当*i*大于1时,进行乘法运算
。问题是,i将始终大于1,因为您从未从中减去
在循环内使用i的减量
添加负值检查(还应处理0值)
在循环内使用i的减量
添加负值检查(还应处理0值)
您正在while循环之外递减i
。将其移动到while循环内部。目前它进入一个无限循环。使用一种逻辑和一致的方式缩进代码块,有助于读者理解程序的流程。这段代码使用的缩进不符合逻辑。你在while循环之外递减i
。将其移动到while循环内部。目前它进入一个无限循环。使用一种逻辑和一致的方式缩进代码块,有助于读者理解程序的流程。那段代码使用的缩进根本不符合逻辑。关于第二点:这取决于他想迭代多少次,因为他没有指定我们不知道应该是4次还是5次;)我的意思是你应该处理smth,比如事实(-2),事实(0)等等。如果这是一个在现实生活中使用的方法,我怀疑情况并非如此,因为它是在主方法中:)但关于你的第二点,这很好:这将取决于他想迭代多少次,因为他没有具体说明我们不知道应该是4倍还是5倍;)我的意思是,你应该处理smth,比如事实(-2)、事实(0)等等。如果这是一种在现实生活中使用的方法,那将是正确的,我怀疑这不是事实,因为它是在主方法中:),但这是好的观点