2016-06-12 75 views
-2

我有一個小問題,我的代碼:GCD GCF HCF在Java中

public static int ggT(int a, int b) { 
    int result = 0; 
    if (a == b) 
     result = a; 
    else if (a > b) 
     a -= b; 
     result = a % b; 
    if (b > a) 
     b -= a; 
     result = a % b; 
    return result; 
} 

第一,如果情況完美的作品!但其他兩個,如果情況下不會工作(他們總是返回0作爲結果。 我不知道爲什麼...:/ 如果有人可以幫助或解釋我犯了什麼錯誤,那將會很棒 I將欣賞任何幫助。

+0

使用'{'和'}'到組的說明。 – Adam

回答

0

根據您的壓痕,它看起來像你需要把一些括號周圍的語句

public static int ggT(int a, int b) { 
    int result = 0; 
    if (a == b) { 
     result = a; 
    } else if (a > b) { 
     a -= b; 
     result = a % b; 
    } 
    if (b > a) { 
     b -= a; 
     result = a % b; 
    } 
    return result; 
} 

如果你不使用括號,只有「如果」後的第一線被視爲聲明的一部分,'返回'始終執行

+0

也有可能貫穿案例2和3。它不應該成爲別的嗎?每個cae的直接回報會更好。 – Turo

+0

感謝您的努力。我添加了括號並仍然得到錯誤的結果/總是返回0作爲結果。 :/任何其他建議什麼可能出錯? = d – VInceDemi

0

1)你必須在if條件中加上括號。 2)最後如果條件應該替換,否則如果條件。

檢查下面的代碼:

public static int ggT(int a, int b) { 
     int result = 0; 
     if (a == b){ 
      result = a; 
     } else if (a > b){ 
      a -= b; 
     } else if (b > a){ 
      b -= a; 
     } 

     if(a > b) { //Check 
      result = b % a; 
     } else if(b > a){ 
      result = a % b; 
     } else if(b == a){ 
      result = a; 
     } 
     return result; 
    }