我想在代码中做的是,如果用户输入无效时间(如25:00:00),我的代码应该捕获错误并提示用户输入了无效时间。我的if else声明似乎无效。
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 :(得分:0)
在您的setTime
方法中,您已经在应用该检查
hour = ((h>=0 && h<=24) ? h:0 );
并将hour
重置为零。因此toRegularTime
方法中的逻辑是多余的。
如果您不确定Java三元运算符的工作原理,请检查此链接
http://en.wikipedia.org/wiki/%3F:#Java
同样不清楚您调用这些方法的顺序。
希望这会有所帮助!!