ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

集训第二次作业

2021-07-14 18:31:16  阅读:200  来源: 互联网

标签:02d 00 hour Thread 作业 sleep 第二次 集训 minute


集训第二次作业

我们要做一个时钟类,这类的对象有一个start方法,它能实现这样的功能

输出:
00:00
00:01
00:02
00:03
00:04
00:05
00:06
. …
00:59
01:00
输出格式可以用System.out.printf("%02d:%02d",hour,min);

思路

1.既然有小时和分钟部分,那就定义hour和minute
2.可以看到当分钟累加到60后,小时部分加1
3.定义minuteLimit,当minute累加到minuteLimit后,hour加1
4.在此题中限制了hour的范围,所以对hour的范围不用定义limit,当然也可以定义hourLimit=24.又或者通过Scanner类来获取hourLimit。
5.构建start方法,在start内进行对minute的累加和hour判断加1的操作

代码实现

package basic;

public class clock {
    private int hour=0;
    private int minute=0;
    final int hourLimit=24;
    final int minLimit=60;

    public void start() throws InterruptedException {
        System.out.printf("%02d:%02d\n",hour,minute);
        while(hour<=0)
        {
            Thread.sleep(1000);
            minute++;
            if(minute==minLimit)
            {
                hour++;
                minute=0;
            }
            System.out.printf("%02d:%02d\n",hour,minute);
        }
    }
    public static void main(String[] args) throws InterruptedException {
        clock cl=new clock();
        cl.start();
    }
}

Thread.sleep()

Thread.sleep(1000)在上述程序的作用是让start中的输出拥有一秒间隔
Thread.sleep()是Thread类中的一种静态方法,使当前正在执行的线程休眠(暂时停止执行)指定的毫秒数,取决于系统计时器和调度程序的精度和准确性。 该线程不会失去任何监视器的所有权。Thread.sleep()的具体实现有两种形式:
1.Thread.sleep(long mills); 线程睡眠mills毫秒
2.Thread.sleep(long mills,int nanos); 线程睡眠mills毫秒+nanos纳秒
在哪个线程中调用Thread.sleep()就暂停哪个程序

说人话:像上述的程序没有加Thread.sleep的时候是一波输出,一秒真男人,加上了Thread.sleep()之后就给他套上了限制,告诉他这波干完之后必须停几秒,再干下一个。

public void countdown(int num) throws InterruptedException {
        while(num!=0)
        {
            num--;
            System.out.println(num);
            Thread.sleep(500);
        }
    }

当运行上述程序的时候,就会看到一个一个输出倒计时,可以更改sleep内数字来改变间隔时间

标签:02d,00,hour,Thread,作业,sleep,第二次,集训,minute
来源: https://blog.csdn.net/qq_56091196/article/details/118733030

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有