99网
您的当前位置:首页Java中switch的三种用法方式

Java中switch的三种用法方式

来源:99网
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 作为了 ⼀条语句, 所以末尾要加冒号, 其他⽤法相同, 下次如果条件很多的话,以考虑使⽤ switch 中的yield 返回参数⽅式了!⽯头剪⼑布 测试代码:

学了switch的这些⽤法, 我想应该写个程序来试试吧, 所以就写了个⽯头剪⼑布的⼩游戏

结果真的惨,,,,代码如下: 可以学习参考

import java.util.HashMap;import java.util.Random;import java.util.Scanner;

public class test {

private HashMap game = new HashMap(); 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){

就不⽤使⽤ if else ,可 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){

return game.get(count); }else {

return game.get(count + 1); } }

public static void main(String[] args) { test me = new test(); me.randomGame(); }}

return game.get(count); }else {

return game.get(count + 1); }}

public static void main(String[] args) { test me = new test(); me.randomGame();}}

到此这篇关于Java中switch的三种⽤法⽅式的⽂章就介绍到这了,更多相关Java switch内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

因篇幅问题不能全部显示,请点此查看更多更全内容