运用到的知识
- 选择结构if、switch
- 循环结构for
- 流程控制coutinue、break
- Scanner控制台、Random包的引用
- computer随机出石头、剪子和布,player在命令窗口输入石头、剪子和布,进行判断,三局两胜
包的引用
- Scanner:从控制台读取player的输入
- Random:获取computer的出法
- 首先导入在package后,函数前,通过语法:import 包名.类名导入。
// 导入Scanner与Random
import java.util.Scanner;
import java.util.Random;
- 使用前进行声明
// 对Scanner与Random进行声明
Scanner input = new Scanner(System.in);
Random ran = new Random();
- 调用
// 从控制台获取字符串,存入str
String str = input.next();
//随机产生0~2之间的数,存入computer
int computer = ran.nextInt(3);
控制台获取各种数据类型的调用语法:
数据类型 | 语法 |
---|---|
int | int a = input.nextInt(); |
double | double a = input.nextDouble(); |
String | String a = input.next(); |
char | char a = input.next()charAt(0); |
switch的使用
- switch语句实现computer与player在命令窗口依“石头、剪子和布”的形式展现
- 把系统产生的0~2之间的随机数,转换为:石头、剪子和布,为了展示
//此段代码,只为测试最终实际效果使用,实际使用中可以注释掉
switch(computer){
case 0: System.out.println("电脑本回合出:剪子"); break;
case 1: System.out.println("电脑本回合出:石头"); break;
case 2: System.out.println("电脑本回合出:布"); break;
}
- 从控制台获取字符,转换为0、1和2,为了方便进行判断
//此段代码,只为测试最终实际效果使用,实际使用中可以注释掉
switch (str){
case "剪子": player = 0; break;
case "石头": player = 1; break;
case "布": player = 2; break;
default:System.out.println("请出: “剪子”、 “石头”或“布”"); continue;
}
此处continue是为了防止非法字符输入,当输入除“石头、剪子或布“的其他字符时,会跳过本次循环,并且不计入局数,进行提示,再次输入
if语句
- 对输赢进行判断
- 控制局数
- 判断输赢
if(computer == player){
System.out.println("-----------平局------------");
continue;
}else if ((computer ==0 && player ==2 )||(computer == 1 && player == 0)||(computer == 2 && player ==1)){
System.out.println("-----------电脑赢-----------");
computerWin++;
}else{
System.out.println("-----------玩家赢-----------");
playWin++;
}
当出现平局时,通过continue跳过本次循环
- 局数的控制,computerWin与playerWin,进行统计
if(computerWin==2 || playWin==2){
if(computerWin==2)
System.out.println("\n"+" "
+"\n"+"¥¥¥¥电脑最终获胜¥¥¥¥"
+"\n"+" ");
else
System.out.println("\n"+" "
+"\n"+"¥¥¥¥玩家最终获胜¥¥¥¥"+
"\n"+" ");
break;
出现一方胜两场,输出最终结果,再通过break结束整个循环
for语句
控制循环
for (int i = 1;i <= 3;){
//以上的逻辑代码
i++;
}
i++,放在后面是因为防止把平局算入局数内
运行结果
第一次写blog,若有不足,欢迎指点
有表达不清的地方,也可以随时交流