2014-10-19 121 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