思路:
定义三个类,分别实现接收人输出的指令,电脑随机出手势,进行比较判断输出结果
第一个类的代码部分:
public class Person {
public static int punch() {
System.out.println("请出 石头 剪刀 布");
Scanner scanner = new Scanner(System.in); //扫描用户输入的字符串,并打印出来
String string = scanner.nextLine();
//把输入的字符串与数字进行匹配
int num = 0; //对输入的字符进行判断,给num不同的赋值
switch (string) {
case "石头":
num =1;
break;
case "剪刀":
num = 2;
break;
case "布":
num = 3;
break;
default:
break;
}
scanner.close();
return num;
}
}
分析:让用户输入文字指令,然后获取并且将这些字符使用switch语句进行判断,得到对应的整数,方便之后比较
第二个类的代码部分:
public class Computer {
public static int punch() {
int num = (int)(Math.random()*3+1); //随机输出1~3之间的整数
switch (num) { //对num值进行判断,屏幕输出 石头、剪刀、布
case 1:
System.out.println("电脑---石头");
break;
case 2:
System.out.println("电脑---剪刀");
break;
case 3:
System.out.println("电脑---布");
break;
}
return num;
}
}
分析:利用随机数知识,随机输出1~3之间的整数,利用switch语句将字符与数字对应匹配,并输出字符
第三个测试类的代码部分:
public class Judge {
public static void main(String[] args) {
w:while(true) {
int num1 = Person.punch();
int num2 = Computer.punch();
int num = num1 - num2;
if(num == -1 || num == 2) {
System.out.println("人赢了");
break w;
}else if(num == -2 || num ==1) {
System.out.println("电脑赢了");
break w;
}else if(num == 0) {
continue w;
}
}
}
}
分析:在三个类中明确了1、2、3三个整数分别对应的值,并且将这些整数进行接收,分别是num1和num2,而后得到num1和num2相减结果分布
利用if语句,不同的情况输出不同的结果。