Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简单Java错误_Java_Coding Style - Fatal编程技术网

简单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应该在循环内部,则在循环外部减少该

这是一个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
应该在
循环内部,则在
循环外部减少该变量

  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)等等。如果这是一种在现实生活中使用的方法,那将是正确的,我怀疑这不是事实,因为它是在主方法中:),但这是好的观点