志在指尖
用双手敲打未来

javaswitch(java中switch语句用法详解)

javaswitch

这次讲讲switch分支操控。
switch语法:
语法很简单看下边代码:
switch(变量){
case常量值1:
//逻辑1;
break;
case常量值2:
//逻辑2;
break;
default:
//逻辑3;
}
解说:
switch是切换的意思,case是比方,现实的意思。那依据什么切换呢?便是switch中的变量,变量是多少,就会匹配到详细的case中,只需匹配到了某一个case,就会一向履行到办法完毕,这是switch的特性。
注意case中是不能写变量的,有必要是常量
举个比方,看下图:
上边通过System.in接纳操控台输入,上一篇文章现已详细讲解过System.in了。那接纳到输入值之后能够转换为int类型。转换完成后,作为switch中的变量,依据此变量的详细值来决定究竟去履行那个case中的逻辑。
比方我输入了1,那inputNumber的值便是1,那么通过switch来切换分支究竟到哪个用例中,结果匹配到的结果是1的用例了也便是第一个case1的分支,然后就履行了打印输出1。
break是什么意思?
break是断开的意思,在这里表示逻辑履行完毕,不会再继续履行下去了,也便是断开正在履行的逻辑,那假如去掉break呢?那便是没断开,还会去履行下边的逻辑,再举个比方吧,比方下图:
我输入了2,然后没有匹配到case1,匹配到了case2,可是为什么又匹配到case3了呢?上边说过了,只需匹配到某个case,程序就会一向履行下去!所以需要在匹配到之后,把逻辑切断,这便是break的作用,用来断开正在履行的逻辑。
那这个就比较有意思了,比方我想让3以下的数字都乘以10,4-6的数字都乘以20,怎么做呢?看下图:
代码是不是很有意思?为什么case1和case2以及case4和case5中没有逻辑呢?
由于假如输入的是1的话,那其实会匹配到case1,那这个时分,case2和case3都会履行,由于case3按照标题来看是最终履行的逻辑,所以,只需要在case3中写入标题的逻辑操控,就能够履行了。那这个时分用一个break来断开逻辑履行就能够完毕了。
default是什么意思?
我们都看到最终有个default了吧?这个是什么意思呢?便是你的变量没有被任何case匹配到,那它就履行default的程序,相当于默许的逻辑,比方上边的比方,假如都匹配不到,就只能打印不认识了。比方下:
我输入了0,那任何case都不会匹配到的,所以,输出了“不认识”。
关于if…else…和switch
聪明的你可能发现switch的一切逻辑都能够用if…else…来实现啊?比方上边的比方能够这样写:
这样也没问题。那这就引入了一个问题:
怎么挑选switch和if…else…
1、判断的结果是常量的状况下能够挑选switch也能够挑选if…else…
但假如条件是判断巨细,比方
if(a>b){…}
那这种状况,switch实现起来就很难,由于case的值是常量。这个时分用if…else…
2、假如分支特别多,主张用switch,唯一优点是容易读懂,这样对于以后维护代码是有很大优点的,至少看代码不费力,可是分至少,比方三四个,那句用if…else…好了。

java中switch语句用法详解

swtich()变量类型只能是int、short、char、byte和enum类型(JDK1.7之后,类型也可所以String了)。当进行case判别时,JVM会主动从上到小扫描,寻觅匹配的case,可能存在以下状况:
状况一:若未找到,则执行默许的case。
inti=5;
switch(i){
case0:
System.out.println(“0”);break;
case1:
System.out.println(“1”);break;
case2:
System.out.println(“2”);break;
default:
System.out.println(“default”);break;
}
输出:default
状况二:当每一个case都不存在break时,JVM并不会次序输出每一个case对应的回来值,而是持续匹配,匹配不成功则回来默许case。
inti=5;
switch(i){
case0:
System.out.println(“0”);
case1:
System.out.println(“1”);
case2:
System.out.println(“2”);
default:
System.out.println(“default”);
}
输出:default
状况三:当每一个case都不存在break时,匹配成功后,从当时case开始,顺次回来后续所有case的回来值。
inti=2;
switch(i){
case0:
System.out.println(“0”);
case1:
System.out.println(“1”);
case2:
System.out.println(“2”);
default:
System.out.println(“default”);
}
输出:2
default
状况四:若当时匹配成功的case不存在break,则从当时case开始,顺次回来后续case的回来值,直到遇到break,跳出判别。
inti=2;
switch(i){
case0:
System.out.println(“0”);
case1:
System.out.println(“1”);
case2:
System.out.println(“2”);
case3:
System.out.println(“3”);break;
default:
System.out.println(“default”);
}
输出:2
3
因此switchcase执行时,一定会先进行匹配,匹配成功回来当时case的值,再根据是否有break,判别是否持续输出,或是跳出判别。
还需留意的是case后边只能是常量,可所以运算表达式,但一定要契合正确的类型。不能是变量,即便变量在之前进行了赋值,JVM仍然会报错。

未经允许不得转载:IT技术网站 » javaswitch(java中switch语句用法详解)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载