龟兔赛跑案例(Java代码演示)

案例要求:

代码演示:

/**
 * PACKAGE_NAME
 * Created on 2020/6/11.
 */
public class demo03 implements Runnable{

    //胜利者  使用static保证只有一个
    private static String winner;

    @Override
    public void run() {
        for (int i = 0; i <= 100; i++) {
            //模拟兔子休息   每10休息一次
            if (Thread.currentThread().getName().equals("兔子")&& i%10==0){
                try {
                    Thread.sleep(100);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            //判断比赛是否结束
            boolean flag = gameOver(i);
            //如果比赛结束了  接听之程序
            if (flag){
                break;
            }
            System.out.println(Thread.currentThread().getName()+"跑了"+i+"米");
        }
    }

    //判断是否完成比赛
    private boolean gameOver(int stpes){
        //判断是否有胜利者
        if (winner!=null){//说明有胜利者
            return true;
        }{
            if (stpes>=100){
                winner = Thread.currentThread().getName();
                System.out.println("胜利者是"+winner);
                return true;
            }
        }
        return false;
    }

    //主程序
    public static void main(String[] args) {
        demo03 demo03 = new demo03();
        //两条线程
        new Thread(demo03,"兔子").start();
        new Thread(demo03,"乌龟").start();
    }
}

输出结果:

........................................................
乌龟跑了93米
乌龟跑了94米
乌龟跑了95米
乌龟跑了96米
乌龟跑了97米
乌龟跑了98米
乌龟跑了99米
胜利者是乌龟

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章