2014-10-19 122 views
0

我是Java的新手,我必須製作一個小應用程序,它可以計算最多5個數字的GCD。 如果輸入的是什麼已經進入5號之前,該應用程序會計算它已經給定數字否則條件被忽略?

不幸的是我的代碼似乎忽略我的else if聲明,將確保它不會嘗試添加「」到一個int數組。

這是我正在努力的部分,我已經試過包含而不是等於,但沒有結果。 我在寫!input..錯了嗎?代碼運行正確,當我嘗試添加0時,它不會執行else if。 但是,如果我輸入「」使應用程序運行if語句的第一部分,它將在else完成後嘗試將「」添加到數組中,這當然會導致錯誤。 我敢肯定,它的小東西我很想念或不知道,但我似乎無法弄清楚。

}else if(Integer.parseInt(input) != 0 || !input.equals(""));{ 
      ggdGetallen[count] = Integer.parseInt(input); 
      count++; 
      txtGetal.selectAll(); 

} 

的完整代碼從否則,如果

private void txtGetalActionPerformed(java.awt.event.ActionEvent evt) {           

    String input = txtGetal.getText(); 

    //Berekenen van het kleinste getal in het array 
    if(count > 4 || input.equals("")){ 
     int kleinsteGetal = ggdGetallen[0]; 
     for (int getal : ggdGetallen){ 
      if (getal < kleinsteGetal && getal != 0){ 
       kleinsteGetal = getal; 
      } 
     } 

     boolean isDividableBy; 
     boolean ggdFound = false; 
     while(!ggdFound){ 
      for (int getal : ggdGetallen) { 
       if (getal != 0){ 
        isDividableBy = (getal % kleinsteGetal == 0); 
        ggdFound = true; 
        if(!isDividableBy){ 
         kleinsteGetal--; 
         ggdFound = false; 
         break; 
        } 
       } 
      } 
     } 

     lblResultaat.setText(String.format("De grootste gemene deler is %d", kleinsteGetal)); 


    }else if(Integer.parseInt(input) != 0 || !input.equals(""));{ 
     ggdGetallen[count] = Integer.parseInt(input); 
     count++; 
     txtGetal.selectAll(); 

    } 


} 
+1

這也是不正確的 Integer.parseInt(input)!= 0 || !input.equals( 「」); 你認爲如果用戶輸入是空的,那麼它的input.equals(「」)變成true.but在那之前你會得到錯誤「」不能轉換爲int。 – 2014-10-19 13:26:59

+1

好點!謝謝 – Vahx 2014-10-19 13:30:17

回答

5

刪除分號。

+0

聖..謝謝!我覺得現在真的很愚蠢:( – Vahx 2014-10-19 13:20:45