🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝🔝
🥇博主昵称:小菜元
🍟博客主页:小菜元
🥗感谢点赞👍评论🃌
⚇很方便的在线编辑器:Lightly
让我们一起在写作中记录学习吧!
目录
switch使用目的
在我们需要通过选择来输出指定内容时(例如:输入1就输出星期一,输入3就输出星期三)这个时候很多初学者都会选择if...else语句来实现,但是这样会导致编写过程冗杂,使得程序执行复杂,为避免这种问题出现,我们可以选择switch条件语句来实现这个内容
switch语句的形式
public class Test{
public static void main(String[] args){
switch(a){
case b: //判断b与a是否相等
//输出语句执行输出内容
case c:
break; //结束执行
default: //加上结束语句
}
}
}
以上就是switch的形式,在switch语句中,a的表达式的类型必须是与int类型兼容的基本形式,就是能自动转化为int类型,因此他的合法类型包括:byte、short、char、int类型(从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量)【每个case后的变量不能相同(称呼:为了便于表述,将switch后的变量成为switch表达式,case后的变量表达式,即a为switch的表达式】
PS:当然变量也可以是枚举类型!
switch语句的注意要点(重点)
- 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句
- 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句(也就是执行了break后直接结束语句)
- switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句
public class Test { public static void main(String args[]){ int i = 5; switch(i){ case 0: System.out.println("0"); case 1: System.out.println("1"); case 2: System.out.println("2"); default: System.out.println("default"); } } }
public class Test { public static void main(String args[]){ int i = 5; switch(i){ case 0: System.out.println("0"); case 1: System.out.println("1"); default: System.out.println("default"); case 2: System.out.println("2"); } } }
上述两段代码表示含义相同!
- 如果 case 语句块中没有 break 语句时,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回default内容(3表述结果可表达次内容)
- 如果switch表达式与某个case表达式匹配或者是与default匹配时就从这个case表达式或者是default开始执行,遇到break即结束,否则就继续执行case后的句子,不检查case表达式的值(case表达式的定义在上方已阐述)
public class Test { public static void main(String[] args){ int x = 4; switch(x){ default:System.out.println("直接输出"); case 1:System.out.println("测试1"); case 2:System.out.println("222");break; case 3:System.out.println("我是3"); } } }
-
PS:那就有朋友会问了,如果我后面的case表达式有了对应的值那么我执行顺序是什么呢?答案其实很简单,就是有对应先执行对应!
- 一般情况下,每个case语句都应该对应一个break以便推出switch语句,但是如果多个表达式对应相同的流程分支就可不必使用
public class Test { public static void main(String[] args){ int x = 2; switch(x){ case 1:System.out.println("测试1"); case 2: case 3: case 4:System.out.println(11); //即case值为234都执行次代码 } } }
使用整数或者String操作数的switch表达式必须要有default,因为无论操作数值是什么,表达式都要生成一个值
-
PS:每个case语句一定要加break来终止执行,否则它将会继续执行知道default结束,导致出现大问题!
-
今天的java学习就到此结束了!希望大家能够掌握switch条件语句!
-