JAVA中的枚举类型




import java.security.SecureRandom;

//这时一个摇骰子游戏
public class Craps {
	// 创建一个安全的产生随机数的random对象
	private static final SecureRandom secureRandoms = new SecureRandom();

	// 定义一个枚举类型类表示输赢的状态
	private enum Status {
		CONTINUE, WON, LOST
	};

	// 常量表示两次骰子摇到的结果判定输赢
	private static final int SNAKE_EYES = 2;
	private static final int TREY = 3;
	private static final int SEVEN = 7;
	private static final int ELEVEN = 11;
	private static final int BOX_CARS = 12;

	public static void main(String[] args) {
		int myPoint = 0;// 本地变量存储第一次摇骰子得到的结果
		Status gameStatus;
		int sumOfDice = rollDice();
		switch (sumOfDice) {
		case SEVEN:
		case ELEVEN:
			gameStatus = Status.WON;// 第一次摇出2数之和为7或11就赢了
			break;
		case SNAKE_EYES:
		case TREY:
		case BOX_CARS:
			//摇出 2|3输了
			gameStatus = Status.LOST;
			break;
		default:
			gameStatus = Status.CONTINUE;
			myPoint = sumOfDice;
			System.out.println("我的点数:" + myPoint);
			break;
		}
		while (gameStatus == Status.CONTINUE) {
			sumOfDice = rollDice();
			if (sumOfDice == myPoint)
				gameStatus = Status.WON;
			//如果和上次一样就赢了
			else if (sumOfDice == SEVEN) {
				gameStatus = Status.LOST;
			}
		}
		if (gameStatus == Status.WON) {
			System.out.println("U Win");
		} else
			System.out.println("U lose");
	}

	private static int rollDice() {
		int die1 = secureRandoms.nextInt(6);
		int die2 = secureRandoms.nextInt(6);
		int sum = die1 + die2;
		System.out.printf("你摇出了%d和%d 得:%d", die1, die2, sum);
		System.out.println();
		return sum;
	}

}

先自己理解代码,这是一个风靡于大街小巷和赌场的摇骰子游戏。阅读代码来加深对每句类型的理解。

本地变量gameStatus声明为前面定义的枚举类型,枚举类型是craps类的一个成员,因为只在这个类用到。

Status被称为枚举类型,里面定义用逗号分割开的叫做枚举常量。

枚举常量是隐式的final类型

枚举常量是饮食的static类型

枚举类型不能够通过new创建

枚举常量可以被用在任何可以使用常量的地方

一般的,我们用枚举类型来标识状态,如一上代码实例就是用来表示,摇骰子的状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值