2014-12-06 36 views
0

該程序用於查找GCD,LCM。當程序到達while循環時,我遇到了問題。下面給出了我的代碼。While循環在GCD中不起作用,LCM

public class GCDLCM { 

    public static void main(String[] args) { 

     Scanner sc = new Scanner(System.in); 
     int x = sc.nextInt(); 
     int y = sc.nextInt(); 
     int a,b; 
     if(x < y) { 

      a = y; 
      b = x; 
      while((a % b) != 0) { 

       a = b; 
       b = a % b; 
      } 
      System.out.println("GCD: "+b); 
     } 
     else { 

      a = x; 
      b = y; 
      while((a % b) != 0) { 

       a = b; 
       b = a % b; 
      } 
      System.out.println("GCD: "+b); 
     } 

     System.out.println("LCM: "+((x * y)/b)); 
    } 
} 

錯誤:異常線程 「main」 java.lang.ArithmeticException:/零在basicProgrammin.GCDLCM.main(GCDLCM.java:24)

請幫幫我,爲什麼我的while循環不工作? 在此先感謝。

回答

0

您可以使用try catch。 這是程序的例外,程序的邏輯運行時錯誤是異常情況。使用try catch您可以處理異常。 不允許被零除,請檢查no是否大於零。

如果您嘗試劃分不小於零,則會發生以下ERROR: Exception in thread "main" java.lang.ArithmeticException:/by zero異常,因此首先檢查no大於0,並嘗試分割no或使用try catch執行異常處理。

while((a % b) != 0) { 

      a = b; 
      try 
     { 
      if(a>0) 
     { 
       b = a % b; 
     } 
     } 
    catch(Exception e) 
    { 
    System.out. print (e); 
    } 
    } 
+0

「對不起!現在還不行」 – Sourov 2014-12-07 11:46:04