微信公众号: 点击蓝色字体小白图像与视觉进行关注
关于技术、关注
yysilence00
。有问题或建议,请公众号留言
JAVA学习笔记—从入门到放弃01——switch_case
-
除了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
*/
更多请扫码关注: