问答详情
源自:7-1 简易扑克牌游戏

在判断玩家ID中的问题、求大神

package com.joker.test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;

import com.joker.entity.Player;
import com.joker.entity.Poker;

public class PokerGame {
	Map<Integer, Player> playerMap;
	List<Poker> pokerList;
	Scanner input;
	String[] type = { "黑桃", "红桃", "梅花", "方块" };
	String[] pointer = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "J",
			"Q", "K", "A" };

	public PokerGame() {
		pokerList = new ArrayList<Poker>();
		input = new Scanner(System.in);

	}

	/**
	 * 创建扑克牌
	 * 
	 * @param args
	 */
	public void pokerAdd() {
		System.out.println("-------创建扑克牌-------");
		for (int i = 0; i < type.length; i++) {
			for (int j = 0; j < pointer.length; j++) {
				pokerList.add(new Poker(type[i], pointer[j]));
			}
		}
		System.out.println("-------扑克牌创建成功-------");
	}

	/**
	 * 遍历显示所有扑克牌
	 * 
	 * @param args
	 */
	public void pokerGet() {
		for (Iterator<Poker> it = pokerList.iterator(); it.hasNext();) {
			for (int i = 0; i < type.length; i++) {
				for (int j = 0; j < pointer.length; j++) {
					Poker poker = it.next();
					System.out
							.print(poker.getType() + poker.getPointer() + " ");
				}
				System.out.println();
			}
		}

	}

	/**
	 * 创建玩家
	 * 
	 * @param args
	 */
	public void playerAdd() {
		System.out.println("-------创建玩家-------");
		int i = 0;
		while (i < 2) {
			System.out.println("请输入玩家的ID:");
			int id;
			try {
				id = input.nextInt();
				Player playerID = playerMap.get(id);
				if (playerID == null) {
					System.out.println("请输入玩家的姓名:");
					String name = input.next();
					Player player = new Player(id, name);
					playerMap.put(id, player);
					System.out.println("成功创建玩家:" +playerMap.get(id).getName());
					System.out.println("--------------------");
					i++;
				} else {
					System.out.println("该ID已被占用~~");
					continue;
				}
			} catch (Exception e) {
				System.out.println("请输入整数类型ID!!");

				continue;
			}
		}
	}

	public static void main(String[] args) {
		PokerGame pg = new PokerGame();

		pg.pokerAdd();
		pg.pokerGet();
		pg.playerAdd();
	}

}

为什么我在try-catch语句中会出现死循环错误输出???求大神指导该怎么改??

http://img.mukewang.com/55ee8da2000159bf05830444.jpg

提问者:码农_鑫森淼焱垚 2015-09-08 15:27

个回答