Java中switch的三种⽤法⽅式
Java中switch的三种⽤法详解:
switch居然有三种⽅式?作为⼀个接触java不久的⼈来说,这确实让我吃了⼀惊!
根据版本,在java14开始, switch语句有了⼀个很⼤的调整,这就让swicth语句有了更多的操作和选择,在代码上,更加的简便灵活,让我们试试这神奇的switch吧!
使⽤switch这个关键词,我们可以很好的解决if…else 中多重选择的尴尬场⾯!
Java中switch的三种⽤法详解:
switch 标准⽅式
switch - > ⽤法:
switch yield ⽤法:
switch 标准⽅式
flag 表⽰计算结果,必须是整性,字符串类型,或者枚举类型。
switch (flag){
case 0 : 语句⼀; break;
case 1: 语句⼆; break;
default: 语句n; break;
}
给个例⼦:
int flag = 3;
switch (flag){
case 0: System.out.println("The number is 0" ); break;
case 1: System.out.println("The number is 1" ); break;
case 2: System.out.println("The number is 2" ); break;
default: System.out.println("you are right" ); break;
}
这是⼀个很标准的 switch 的⽤法,有break,还有 default ,在什么情况下跳出,在什么情况下结束运⾏,都很清楚的说明了,但是朋友们在写这个代码的时候,有可能会忘记加⼊break 或者忘记加⼊ default 这样的问题吧。
解决办法:
如果使⽤的是 IDEA 编译器,可以加⼊语法提⽰,⼀般默认都是开启的,如果没开的话步骤如下:
点击: setting - Editor - Inspections - Java - Control flow
把所有的勾选上去就完事了
如果使⽤的是 eclipse 编译器,步骤如下:
Preferences-Java-Compiler-Errors/Warnings-Potential programming problems
直接使⽤switch的第⼆种⽤法
switch - > ⽤法:
使⽤ - > ⽅法更加简单,就不⽤使⽤ break 命令,保证只有⼀种路径会被执⾏!
⽤法如下:
int flag = 3;
switch (flag){
case 0 -> System.out.println("The number is 0" );
case 1 -> System.out.println("The number is 1" );
case 2 -> System.out.println("The number is 2" );
default -> System.out.println("you are right" );
}
去掉了 break 和冒号取代的使⽤箭头 ->
不过瘾?还有⼀种⽅式。⽤来接受参数。
switch yield ⽤法:
看到 yield 的时候,我就在想,这⼀定要传值回来的函数。⽤法也很简单,
但是需要注意⼀点,传值回去,外部⼀定要定义个参数⽤来接受这个值。
int flag = 2;
String ss;
ss = switch (flag){
case 0 -> "The number is 0" ;
case 1 -> "The number is 1" ;
case 2 -> {
String c = "The number is 2";
yield c;
}
default -> "you are right" ;
};
System.out.println(ss);
这⾥来说, switch 作为了⼀条语句,所以末尾要加冒号,其他⽤法相同,下次如果条件很多的话,就不⽤使⽤ if else ,可以考虑使⽤ switch 中的yield 返回参数⽅式了!
⽯头剪⼑布测试代码:
学了switch的这些⽤法,我想应该写个程序来试试吧,所以就写了个⽯头剪⼑布的⼩游戏
结果真的惨,,,,
代码如下:可以学习参考
import java.util.HashMap;
import java.util.Random;
import java.util.Scanner;
java switch case stringpublic class test {
private HashMap<Integer, String> game = new HashMap<Integer, String>();
public test() {
game.put(1, "⽯头");
game.put(2, "剪⼑");
game.put(3, "步");
}
public void randomGame() {
Scanner in = new Scanner(System.in);
System.out.println("这是⼀个⽯头剪⼑布的游戏\n" +
"我们学着使⽤ switch 语法来完成这个⼩游戏程序! \n" +
"Let me start!");
int num = 3;
boolean flag = true;
int win = 0;
while (flag) {
System.out.print("机器⼈已经准备好:\n请输⼊你的操作如:⽯头\n输⼊:");
String myHand = in.next();
String robot = getRobot();
String s = "你的出招为 " + myHand + " 机器⼈的出招为 "
+ robot;
// 先判断相同情况下
if (robot.equals(myHand)) {
System.out.println(s+ "平局!"); }
// 判断不同情况下
else if ( myHand.equals("剪⼑"))
{
switch (robot){
case "⽯头" -> System.out.println(s + " you lose");
case "布" -> {
System.out.println(s + " you win");
win += 1;
}
}
}else if (myHand.equals("⽯头")){
switch (robot) {
case "剪⼑" -> System.out.println(s + " you lose");
case "布" -> {
System.out.println(s + " you win");
win += 1;
}
}
}else if (myHand.equals("布")){
switch (robot) {
case "剪⼑" -> System.out.println(s + " you lose");
case "⽯头" -> {
System.out.println(s + " you win");
win += 1;
}
}
}else {
System.out.println("你输⼊的" + myHand + "是错误的");
}
num-=1;
if (num == 0){flag = false;}
System.out.println("你还有" + num + "次机会.");
}
System.out.println("三局⽐赛中,你⼀共获胜次数为 " + win);
}
public String getRobot() {
// 得到机器⼈的出招
int count = (int) (Math.random() * 10 / 3);
if (count > 0){
(count);
}else {
(count + 1);
}
}
public static void main(String[] args) {
test me = new test();
me.randomGame();
}
}
(count);
}else {
(count + 1);
}
}
public static void main(String[] args) {
test me = new test();
me.randomGame();
}
}
到此这篇关于Java中switch的三种⽤法⽅式的⽂章就介绍到这了,更多相关Java switch内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论