2015-03-04 2 views
-2

Что я хочу сделать в своем коде, если пользователь вводит неверное время, например, 25:00:00, мой код должен поймать ошибку и предложить пользователю ввести неверное время. Утверждение My if else кажется неработоспособным.catch invalid time input

public void setTime(int h, int m, int s){ 

     hour = ((h>=0 && h<=24) ? h:0); 
     minute = ((m>=0 && m<=60)? m:0); 
     second =((s>=0 && s<=60)? s:0); 
    } 


    public void toRegularTime(){ 
     if(hour > 24){ 
      System.out.println("invalid time"); 
      JOptionPane.showMessageDialog(null,"Please Input a Valid Time!", "Invalid Time!", JOptionPane.ERROR_MESSAGE); 

     }else 
      System.out.format("%02d:%02d:%02d %s", ((hour==0 || hour ==12) ? 12:hour%12),minute,second,(hour<12 || hour>23? "AM" : "PM")); 






} 
+0

'setTime' примет' 24: 60: 60', что я сомневаюсь в том, что вы намеревались –

ответ

0

В вашем методе setTime вы уже подали заявки, что регистрация hour = ((h>=0 && h<=24) ? h:0); и сброс hour обратно к нулю. Поэтому логика в методе toRegularTime избыточна. , если вы не знаете, как работает Java троичный оператор, проверьте эту ссылку http://en.wikipedia.org/wiki/%3F:#Java

Также не ясно, в каком порядке вы вызываете эти методы.

Надеюсь, что это поможет!

Смежные вопросы