2013-12-13 168 views
-1

最近我試着編寫一個程序,打印出兩個數字的LCM放在參數中。 雖然我幸運的是沒有任何編譯錯誤,但我沒有得到正確的答案。 我在for循環中使用了嵌套的ifs,我找不到問題...你能幫助我嗎? 我總體上被i ++概念困惑。謝謝。我對Java中的循環很困惑

這是我爲我的LCM課寫的。

public class LCM { 
    public static int calcLCM(int num1, int num2) { // num1=10, num2=4; their 
                // LCM is 20 
     // num1 has to be greator than num2 
     int multiple = 0; 
     for (int i = 1; i == num1; i++) { 
      if (num2 == num1) { 
       multiple = num2; 
      } 

      else if (num2 * i > num1) { 
       i++; 
       num1 = num1 * i; 
      } 

      else if (num2 * i < num1) { 
       i++; 
       num2 = num2 * i; 
      } 

     } 
     return multiple; 
    } 

} 
+0

沒有'main()'爲您的類? –

+0

你需要在將來有一個更徹底,深思熟慮和研究的問題。什麼使你特別**迷惑了你?哪個行號?什麼聲明?請幫助我們幫助你 – OneChillDude

回答

6

for(int i=1;i==num1;i++)更改爲for(int i=1;i<=num1;i++)

for循環在當前的代碼運行只有i == num1

0

循環將只運行,如果i==num1阿卡num1==1

嘗試for(int i=1;i<=num1;i++)

2
for(int i=0;i<10;i++) 
{ 
System.Out.Println(i); 
System.Out.Println("\n"); 
} 

//這個循環運行10次

1

我+ +手段,我們使用INT I,因爲它是在等式/條件,那麼通過一個加一。 例如,

int i = 1; 
int j = (i++) + 3; 
System.out.println(j); 
System.out.println(i); 

輸出是

​​3210

Ĵ將是4,因爲它會使用I,因爲它是(1 + 3)然後,將增量I,這樣我然後將2用於循環

有三個部分

爲(第1部分;第2部分;第3部分)

  • 部分1是最初的,這意味着它只能在開始
  • 部2發生一次是每次執行之前檢查的條件。如果條件爲真,則執行正文中的代碼。如果爲假,那麼它將跳出循環的
  • 部3是執行在循環體的代碼之後,每次執行的代碼

即使世界for循環一個不同之處在於,可用於數組等與迭代器,但你有可能得到它以後

0
public class LCM  
{ 
public static int calcLCM(int num1, int num2) 
{ 
//num1=10, num2=4; their LCM is 20 
//num1 has to be greator than num2 
int i=1; 
while((num1*i)%num2!=0) 
{ 
i++; 
} 
return num1*i; 
}