If和else表示Java试图停止语句作业

If和else表示Java试图停止语句作业,java,if-statement,clock,bluej,Java,If Statement,Clock,Bluej,这是我的密码 private void updateDisplay() { if(hours.getValue() == 0){ hours.setValue(12); displayString = hours.getDisplayValue() + ":" + minutes.getDisplayValue() + " am"; } else if(hours.getValue() < 12){

这是我的密码

private void updateDisplay() {
    if(hours.getValue() == 0){
        hours.setValue(12);
        displayString = hours.getDisplayValue() + ":" + 
        minutes.getDisplayValue() + " am"; 
    }
    else if(hours.getValue() < 12){
        displayString = hours.getDisplayValue() + ":" + 
        minutes.getDisplayValue() + " am";
    }
    else if(hours.getValue() == 12){
        displayString = hours.getDisplayValue() + ":" + 
        minutes.getDisplayValue() + " pm";
    }
    else if(hours.getValue() < 24){ 
        displayString = hours.getValue() - 12 + ":" +  
        minutes.getDisplayValue() + " pm"; 
    }
}
private void updateDisplay(){
if(hours.getValue()==0){
小时。设定值(12);
displayString=hours.getDisplayValue()+“:”+
分钟数。getDisplayValue()+“am”;
}
else if(hours.getValue()<12){
displayString=hours.getDisplayValue()+“:”+
分钟数。getDisplayValue()+“am”;
}
else if(hours.getValue()==12){
displayString=hours.getDisplayValue()+“:”+
分钟数。getDisplayValue()+“pm”;
}
如果(hours.getValue()<24){
displayString=hours.getValue()-12+“:”+
分钟数。getDisplayValue()+“pm”;
}
}
所以基本上这是一个时钟,我试图以12小时的格式显示。。从晚上11点59分开始

我让它说12:00am,但一旦我timeTick()它一旦因为我的if hours.getValue==0而变成12:01pm,那么我们就把它设为12,但在后面的方法中,它的if hours.getValue()=12把它设为pm。我想避免这样。在维护相当简单的java的同时,有什么想法吗


谢谢。我只是在小时数等于12的情况下添加了12,而不是setValue(12)。getValue()==0

为什么不在小时数等于12的情况下做你要做的事情呢


不要实际设置小时值,打印时只需加上12。

为什么不在小时数等于12时,只做你要做的事情呢


不要实际设置小时值,打印时只需加12。

在内部使用24小时时钟,但使用“小时模式12”显示其值。

在内部使用24小时时钟,但使用“小时模式12”显示其值。

假设
hours.getValue()
返回
int
,您可以执行
hours.getValue()/13 == 0 ? 小时数。getValue()+“:”+分钟数。getDisplayValue()+“AM”:小时数。getValue()-12+“:“+分钟数。getDisplayValue()+“PM”。该表达式称为三元运算符,int数据类型修剪十进制结果


我更新了它来做所有的事情。我希望您喜欢1行程序。

假设
hours.getValue()
返回
int
,您可以执行
hours.getValue()/13==0?小时数。getValue()+“:”+分钟数。getDisplayValue()+“AM”:小时数。getValue()-12+“:“+分钟数。getDisplayValue()+“PM”。该表达式称为三元运算符,int数据类型修剪十进制结果


我更新了它来做所有的事情。我希望你喜欢一句台词。

我不熟悉你的意思……而且因为这是一项任务,我真的不能超出我们应该学习的范围,你知道。你是对的,虽然在内部它是24小时,但我只需要将它显示为12。。我可以在12点01分过去。我将我的值设置为12,但下次显示时,它将看到12,并将其作为一个pm,此时不会出现…
mod
是除法的其余部分,在Java中与
%
符号一起使用<代码>4%3=1;24%12=0
唯一的问题是,24小时!=上午0点,但下午12点。同样的12小时。它需要额外的处理(OP已经有了它的方式)。我不熟悉你的意思…因为它是为了一个任务,我真的不能超出我们应该了解的你知道。你是对的,虽然在内部它是24小时,但我只需要将它显示为12。。我可以在12点01分过去。我将我的值设置为12,但下次显示时,它将看到12,并将其作为一个pm,此时不会出现…
mod
是除法的其余部分,在Java中与
%
符号一起使用<代码>4%3=1;24%12=0
唯一的问题是,24小时!=上午0点,但下午12点。同样的12小时。它需要额外的处理(OP已经有了它的方式)。你是对的,我已经在pm中使用它了,我不知道为什么我没有在am中看到它。非常感谢,伙计,你说得对,我已经在pm上用过了,我不知道为什么am上没有看到它。谢谢你,伙计