这里是我的一段代码:不清楚是哪里没有做好,结果有点问题:
public static void main(String[] args) {
// MainTest mainTest = new MainTest();
// mainTest.init();
DiceGame diceGame = new DiceGame();
// BufferedReader reader = null;
byte[] bArray=new byte[20];
char i;
while (true) {
i = '0';
System.out.println("请选择您所要操作的选项...");
System.out.println("1.输入名字 2.玩游戏 3.获取排名 4.退出");
try {
i = (char)System.in.read();
switch (i) {
case '1':
System.in.read(bArray);
String str=new String(bArray);
System.out.println("Name:");
// reader = new BufferedReader(new InputStreamReader(System.in));
// diceGame.getM_Player().setName(reader.readLine());
str = str.trim();
diceGame.getM_Player().setName(str);
System.out.println(diceGame.getM_Player().getName());
break;
case '2':
if (diceGame.getM_Player().getName() == null) {
System.out.println("Please enter your name!");
break;
}
else {
diceGame.play();
diceGame.saveScore();
System.out.println("您本次掷骰子的值为:" + diceGame.getM_Player().getScore());
}
break;
case '3':
diceGame.getRankList();
break;
case '4':
System.exit(1);
break;
default:
System.out.println("Please enter a right number!");
break;
}
} catch (IOException e) {
e.printStackTrace();
}
} }输出的结果是这样的:
请选择您所要操作的选项...
1.输入名字 2.玩游戏 3.获取排名 4.退出
1
Name:请选择您所要操作的选项...
1.输入名字 2.玩游戏 3.获取排名 4.退出//这样的话我还没有输入名字它就又要求我输入操作了。不清楚是哪里出问题了,希望能帮我看下。谢谢哈
public static void main(String[] args) {
// MainTest mainTest = new MainTest();
// mainTest.init();
DiceGame diceGame = new DiceGame();
// BufferedReader reader = null;
byte[] bArray=new byte[20];
char i;
while (true) {
i = '0';
System.out.println("请选择您所要操作的选项...");
System.out.println("1.输入名字 2.玩游戏 3.获取排名 4.退出");
try {
i = (char)System.in.read();
switch (i) {
case '1':
System.in.read(bArray);
String str=new String(bArray);
System.out.println("Name:");
// reader = new BufferedReader(new InputStreamReader(System.in));
// diceGame.getM_Player().setName(reader.readLine());
str = str.trim();
diceGame.getM_Player().setName(str);
System.out.println(diceGame.getM_Player().getName());
break;
case '2':
if (diceGame.getM_Player().getName() == null) {
System.out.println("Please enter your name!");
break;
}
else {
diceGame.play();
diceGame.saveScore();
System.out.println("您本次掷骰子的值为:" + diceGame.getM_Player().getScore());
}
break;
case '3':
diceGame.getRankList();
break;
case '4':
System.exit(1);
break;
default:
System.out.println("Please enter a right number!");
break;
}
} catch (IOException e) {
e.printStackTrace();
}
} }输出的结果是这样的:
请选择您所要操作的选项...
1.输入名字 2.玩游戏 3.获取排名 4.退出
1
Name:请选择您所要操作的选项...
1.输入名字 2.玩游戏 3.获取排名 4.退出//这样的话我还没有输入名字它就又要求我输入操作了。不清楚是哪里出问题了,希望能帮我看下。谢谢哈
解决方案 »
- 调用linux的 .so 文件报错 请大牛 帮看看 急 在线等
- 浏览器下图片加载不出来
- java中有没有不要配置数据源的数据库连接方式?
- 新来的 问个eclipse的问题
- 谁能介绍几个可以用作application server集群中httpsession复制的缓存框架?谢谢了!
- <html:link page="del.do" onClick = "question()" >问题?????
- 好心人帮忙看一下
- 关于使用JBOSS写JMS的奇怪问题
- 求weblogic7 sp2 or sp3 or sp4的下载地址
- 设置自己的classloader的问题
- 后台报出 java.lang.IllegalArgumentException: No SqlMapClient specified 是什么原因啊
- Java 操作Properties 读写问题
System.out.println("请选择您所要操作的选项...");
System.out.println("1.输入名字 2.玩游戏 3.获取排名 4.退出");把你的DicGame帖出来看看
i = (char)System.in.read();
System.in.read(new byte[2]);//读取回车换行键
switch (i) {
case '1':
System.out.println("Name:");
System.in.read(bArray);
String str=new String(bArray);
System.in.read(bArray);
因为read一次只接受一个字符,而后面还有个/r/n导致了问题的出现。我改成:
reader2 = new BufferedReader(new InputStreamReader(System.in));
这样就行了。