【龟兔赛跑: 1、总里程100米 2、兔子每秒跑5米,每20米要休息2秒 3、乌龟每秒钟4米,不休息 4、谁先到达终点,比赛结束】

public class Zuoye2 {
	public static void main(String[] args) {
		//兔子的线程
		Thread rabbit = new Thread() {
			@Override
			public void run() {
				try {
					for(int i=0;i<=100;i+=5) {
						System.out.println("兔子跑了"+i+"米");
						//只要没跑到终点,那么每秒钟跑5米
						if(i!=100) {
							Thread.sleep(1000);
						}
						//每20米要休息2秒,开始跑和跑到终点不用休息
						if(i%20==0 && i!=0 && i!=100) {
							Thread.sleep(2000);
						}
					}
					System.out.println("兔子赢得了比赛,游戏结束");
					System.exit(0);//退出jvm虚拟机,谁先到达终点,比赛结束
				}catch (Exception e) {
					e.printStackTrace();
				}
			}
		};

		//乌龟的线程
		Thread wugui = new Thread() {
			@Override
			public void run() {
				for(int i=0;i<=100;i+=4) {
					System.out.println("乌龟跑了"+i+"米");
					//每秒钟跑4米,开始跑和跑到终点了不用休息
					if(i==0 || i==100) {
						continue;
					}
					try {
						Thread.sleep(1000);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
				System.out.println("乌龟赢得了比赛,游戏结束");
				System.exit(0);//退出jvm虚拟机,谁先到达终点,比赛结束
			}
		};
		
		rabbit.start();
		wugui.start();
	}
}	

上述是第一种方法

一下为第二种方法

	public static void main(String[] args) {
		// 创建乌龟和兔子线程
		Tur tur = new Tur();
		Rabbit rabbit = new Rabbit();
		tur.setName("乌龟");
		rabbit.setName("小白兔");
		// 开始赛跑
		rabbit.setDaemon(true);// 守护线程
		tur.start();
		rabbit.start();
	}
}

class Tur extends Thread {
	public Tur() {
		super();
	}

	@Override
	public void run() {
		for (int i = 1; i <= 100; i++) {
			// 乌龟4米 每秒 1米是 0.25秒
			try {
				Thread.sleep(250);// 相当于休息0.25s
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			// 每次跑了一米都打印
			System.out.println(Thread.currentThread().getName() + "跑了" + i + "米");
			if(i==100) {
				System.out.println("乌龟获得胜利");
			}
		}
	}
}

//兔子
class Rabbit extends Thread {
	public Rabbit() {
		super();
	}

	@Override
	public void run() {

		for (int i = 1; i <= 100; i++) {
			// 兔子5米 每秒 1米是 0.2秒
			try {
				Thread.sleep(200);// 相当于休息0.2s
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			System.out.println(Thread.currentThread().getName() + "跑了" + i + "米");
			if(i==100) {
				System.out.println("小白兔获得胜利");
			}
			if (i % 20 == 0 && i != 100) {
				// 跑完20米
				try {
					Thread.sleep(2000); // 兔子每跑完20米休息的时间2秒
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}

	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

God Zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值