philture 2017-10-21 11:08 采纳率: 100%
浏览 745
已采纳

这段代码哪里出错了么?为什么increase没有控制minute的更改?

package test1;

public class Display {
private int value = 0;
private int limit = 0;
public Display(int limit){
this.limit=limit;
}
public void increase(){
value++;
if(value==limit){
value=0;
}
}
public int getvalue(){
return value;
}

public static void main(String[] args) {
    // TODO 自动生成的方法存根
    Display d= new Display(24);
    for(;;){
        d.increase();
        System.out.println(d.getvalue());
    }
}

}


package test1;

public class clock {
private Display hour= new Display(24);
private Display minute = new Display(60);
public void start(){
while(true){
minute.increase();
if(minute.getvalue()==0){
hour.increase();
System.out.printf("%02d:%02d\n",hour.getvalue(),minute.getvalue());
}
}
}

public static void main(String[] args) {
    // TODO 自动生成的方法存根
    clock clock = new clock();
    clock.start();
}

}


图片说明

  • 写回答

2条回答 默认 最新

  • LoveSnowbear 2017-10-22 05:54
    关注

    实际上你的increase方法是更改了你的minute的value值的, 因为你将

    System.out.printf("%02d:%02d\n",hour.getvalue(),minute.getvalue());
    放在了minute==0 的判断语句里,所以只会显示当minute=0时的clock值

    如果想要显示minute值,需要
    while(true){
    minute.increase();
    if(minute.getvalue()==0){
    hour.increase();
    }
    System.out.printf("%02d:%02d\n",hour.getvalue(),minute.getvalue());
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条