2011-10-29 79 views
0

這是一個在java中的因子程序,它不工作,請讓我知道錯誤。謝謝!簡單的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);  
    } 
} 
+1

您在while循環外遞減'i'。把它移到while循環裏面。目前它進入無限循環。 –

+1

使用縮進代碼塊的邏輯和一致的方式,幫助讀者理解程序的流程。該代碼使用縮進,這是**任何事情,但**邏輯。 –

回答

4

時,它應該是它裏面你降低可變iwhile循環。

while(i>1) 
    { 
    num=num*i; 
    } 
    i--; 

應該是:

while(i>1) 
    { 
    num=num*i; 
    i--; 
    } 

你目前的代碼說的是,while *i* is greater than 1 do your multiplication。問題是,將永遠大於1,因爲你永遠不會從它減少。內環路我的

+0

哦,是啊...我很困惑...工作! – Webroots

0
  1. 使用減量
  2. 添加支票負值(你也應該處理0值)
+0

關於你的第二點:這將取決於他想迭代多少次,因爲(他)沒有指定我們不知道它是否應該是4次或5次;) – Marcus

+0

I這意味着你應該像事實(-2),事實(0)等處理smth – mishadoff

+0

這將是真實的,如果是要在現實生活中使用的方法,我懷疑這不是事實,因爲它是在主要方法:)但好點 – Marcus