微信公众号: 点击蓝色字体小白图像与视觉进行关注
关于技术、关注yysilence00。有问题或建议,请公众号留言
除了if语句外,还有一种条件判断,是根据某个表达式的结果,分别去执行不同的分支。
例如,在游戏中,让用户选择选项:
单人模式
多人模式
退出游戏 这时,switch语句就派上用场了。
switch语句根据switch (表达式)计算的结果,跳转到匹配的case结果,然后继续执行后续语句,直到遇到break结束执行。
package com.itranswarp.learnjava; import java.util.Random; import java.util.Scanner; /** * * @ClassName: Main * @Description: TODO(剪刀石头布小游戏) * @author yanyong * @date 2020-10-21 * */ public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("please choice:"); System.out.println("1:石头"); System.out.println("2:布"); System.out.println("3:剪刀"); // 玩家选项 //whoWin(scanner);//方法1 secondGetWhoWin(scanner);//方法二 } /** * * @Title: whoWin * @Description: TODO(if 嵌套 switch case) * @param @param scanner 参数 : 系统输入对象 * @return void 返回类型 * @throws */ public static void whoWin(Scanner scanner) { int PlChoice = scanner.nextInt(); // 玩家输入 int PcChoice = 0; PcChoice = 1 + (int) (Math.random() * 3); // 电脑随机 if (PcChoice == 1) { System.out.println("对方出了石头"); switch (PlChoice) { case 1: System.out.println("平局"); break; case 2: System.out.println("你赢了:)"); break; case 3: System.out.println("你输了:("); break; default: System.out.println("No Choice Selected"); break; } // 类型一 } else if (PcChoice == 2) { System.out.println("对方出了布"); switch (PlChoice) { case 1: System.out.println("你输了:("); break; case 2: System.out.println("平局"); break; case 3: System.out.println("你赢了:)"); break; default: System.out.println("No Choice Selected"); break; } // 类型二 } else if (PcChoice == 3) { System.out.println("对方出了剪刀"); switch (PlChoice) { case 1: System.out.println("你赢了:)"); break; case 2: System.out.println("你输了:("); break; case 3: System.out.println("平局"); break; default: System.out.println("No Choice Selected"); break; } // 类型三 } } /** * * @Title: secondGetWhoWin * @Description: TODO(利用switch 嵌套 switch case) * @param @param scanner 参数 : 系统输入对象 * @return void 返回类型 * @throws */ public static void secondGetWhoWin(Scanner scanner) { Random rand = new Random(); int computerNum = rand.nextInt(3) + 1; System.out.printf("计算机选择的是数字:%d", computerNum); int yourChoice = scanner.nextInt(); System.out.printf("你的选择是数字:%d\n", yourChoice); switch(computerNum) { case 1: System.out.printf("计算机选择的是数字:%d,对应计算机输出为:石头\n",computerNum); switch (yourChoice) { case 1: System.out.println("平局"); break; case 2: System.out.println("你胜利"); break; case 3: System.out.println("你输了"); break; default: break; } //情况1 case 2: System.out.printf("计算机选择的是数字:%d,对应计算机输出为:布\n",computerNum); switch (yourChoice) { case 1: System.out.println("你输了"); break; case 2: System.out.println("平局"); break; case 3: System.out.println("你赢了"); break; default: break; }//情况2 case 3: System.out.printf("计算机选择的是数字:%d,对应计算机输出为:剪刀\n",computerNum); switch (yourChoice) { case 1: System.out.println("你赢了"); break; case 2: System.out.println("你输了"); break; case 3: System.out.println("平局"); break; default: break; }//情况3 } } } /** * please choice: 1:石头 2:布 3:剪刀 计算机选择的是数字:1 3 你的选择是数字:3 计算机选择的是数字:1,对应计算机输出为:石头 你输了 计算机选择的是数字:1,对应计算机输出为:布 你赢了 计算机选择的是数字:1,对应计算机输出为:剪刀 平局 * */ /** * 剪刀石头布小游戏 * case里套if else语句 运行结构看看 * 两个思路: * 把每种情况的整型之差计算出来,写进case,这样两个switch语句不用嵌套 * 不计算每种情况,直接case里再套一个switch */更多请扫码关注:
