/**
import java.util.Random;
import java.util.Scanner;
public class cai {
private static final String Random = null;
String enemyName = "";
int jf = 0;
Scanner input = new Scanner(System.in);
public static void main(String[] args) {
cai quan = new cai();
quan.showMenu();
}
// 方法--1:欢迎菜单
public void showMenu() {
System.out.println("\n\n\n");
System.out.println("\t**********迷你猜拳小游戏**********");
System.out.println();
System.out.println("\t\t 游戏开始!");
// Scanner 监听我们键盘输入的内容,将输入的内容传输给程序
System.out.println("\t请选择你的对手:(1.孙尚香 2.嫦娥 3.妲己 )");
System.out.print("\t\t");
int dui = input.nextInt();
if (dui == 1 || dui == 2 || dui == 3) {
System.out.print("\t\t");
String myName = "";
System.out.println(dui);
System.out.println("\t请输玩家的名字:");
System.out.print("\t\t");
myName = input.next();
switch (dui) {
case 1:
enemyName = "孙尚香";
break;
case 2:
enemyName = "嫦娥";
break;
case 3:
enemyName = "妲己";
break;
}
System.out.println("\t" + myName + " VS " + enemyName);
System.out.println("\t是否确定开始游戏?(按YES开始;按NO退出游戏)");
System.out.print("\t\t");
String kai = input.next();
if (kai.equalsIgnoreCase("YES")) {
// 游戏开始:
System.out.println();
play();
}else if(kai.equalsIgnoreCase("NO")) {
System.out.println("\t游戏程序已退出!");
}else {
System.out.println("\t你输入错误!");
}
} else {
System.out.println("\t你输入错误!");
}
}
public void play() {
int myfen = 0;
int enemyfen = 0;
for (int i = 0; i < 5; i++) {
System.out.println("\t-----第" + (i + 1) + "回合-----");
System.out.println("\t请出拳(1.石头 2.剪刀 3.布):");
System.out.print("\t\t");
int temp1 = input.nextInt();
String myChoose = change(temp1);
Random rd = new Random();
int temp2 = rd.nextInt(3) + 1;
String enamyChoose = change(temp2);
System.out.println("\t你的选择是:" + myChoose);
System.out.println("\t对手的选择是:" + enamyChoose);
input.close();
switch (temp1) {
case 1:
if (temp2 == 1) {
System.out.println("\t平局");
} else if (temp2 == 2) {
System.out.println("\t你赢了");
jf++;
} else {
System.out.println("\t你输了");
jf--;
}
break;
case 2:
if (temp2 == 1) {
System.out.println("\t你输了");
jf--;
} else if (temp2 == 2) {
System.out.println("\t平局");
} else {
System.out.println("\t你赢了");
jf++;
}
break;
case 3:
if (temp2 == 1) {
System.out.println("\t你赢了");
jf++;
} else if (temp2 == 2) {
System.out.println("\t你输了");
jf--;
} else {
System.out.println("\t平局");
}
break;
}
System.out.println();
}
System.out.println("\t你的总积分为:" + jf);
}
public String change(int choose) {
String str = "";
switch (choose) {
case 1:
str = "石头";
break;
case 2:
str = "剪刀";
break;
case 3:
str = "布";
break;
}
return str;
}
}
要学会分析异常信息:调用input.nextInt导致的,可以设置断点调试
input.close();应该放在确定自己是赢还是输的地方,而不是在对手选择了之后就关闭,那样一旦结果是平局,下次输入时就没有input了
一般来说是不手动的去关闭输入的input.close()
因为控制台程序主要就是用scanner去输入,在程序没有结束的时候不应该手动触发
当程序结束的时候直接调用System.exit(0)来退出程序