Minecraft(我的世界)中文论坛

标题: JAVA语言零基础学习 扩展篇 switch控制语句

作者: 简单    时间: 2013-7-15 15:24
标题: JAVA语言零基础学习 扩展篇 switch控制语句
本帖最后由 海螺螺 于 2020-1-25 16:07 编辑

索引贴:http://www.mcbbs.net/thread-138969-1-1.html
这一章的内容比较少,只是为了补完条件语句,等下还有一章。

条件语句:http://www.mcbbs.net/thread-141338-1-1.html

之前我们说了条件语句中的if,现在我们来说说另一个条件语句switch,英文好一点的同学知道,if是如果的意思,而switch有开关的意思。
如果把if语句翻译成我们能的语言就是:如果怎样就。而嵌套则是:如果怎样就如果怎样就。“就”(判断完成后)的后面还是一个判断。
而switch呢?如它的翻译一样,这是一个开关。
接下来我们将为大家详细的说明一下switch的用法,开关之意就很好理解了。
基本格式
  1. switch(变量)
  2. {
  3. case 条件1:命令1;
  4. break;
  5. case 条件2:命令2;
  6. break;
  7. case 条件3:命令3;
  8. break;
  9. defaut:命令4
  10. }
复制代码
我们来看代码

  1. public class book {


  2.         public static void main(String[] args)
  3.         {
  4.           int a=1;
  5.           switch(a)
  6.           {
  7.                   case 1:
  8.                           System.out.println("a=1");
  9.                           break;
  10.                   case 2:
  11.                           System.out.println("a=2");
  12.                           break;
  13.                   default:
  14.                           System.out.println("都不是诶");
  15.           }
  16.                         
  17.                         
  18.         }
  19. }
复制代码
结果看下面
a=1
为什么是这个?
很好理解对吧?
关键字switch后面括号里的变量是需要判断的变量.
case 后面的是一个固定的常量,变量值对于固定常量的时候,执行冒号后的语句.break,跳出判断.
而default这表示除此之外的情况的处理.

我们在需要大量判断的时候,很明显,switch比if更加优越.
每一个case语句后面都更着一个break.什么意思?
我们来看看另一个程序

  1. public class book {
  2.         
  3.         public static void main(String[] args)
  4.         {
  5.           int a=1;
  6.           switch(a)
  7.           {
  8.             
  9.          
  10.                   case 1:
  11.                           System.out.println("a=1");
  12.             case 2:
  13.                           System.out.println("a=2");
  14.                           break;
  15.                   default:
  16.                           System.out.println("都不是诶");
  17.          
  18.                         
  19.           }
  20.         }
  21. }
复制代码
结果
a=1
a=2
有什么不对吗?

实际上在没有break进行终止的情况下,这个语句将会从判断对的地方开始,下面的全部执行.
如果我将里面的另一个break也去掉会发生什么?

  1. public class book {
  2.         
  3.         public static void main(String[] args)
  4.         {
  5.           int a=1;
  6.           switch(a)
  7.           {
  8.             
  9.          
  10.                   case 1:
  11.                           System.out.println("a=1");
  12.             case 2:
  13.                           System.out.println("a=2");
  14.                   default:
  15.                           System.out.println("都不是诶");
  16.          
  17.                         
  18.           }
  19.         }
  20. }
复制代码
结果是
  1. a=1
  2. a=2
  3. 都不是诶
复制代码
再来看,如果把上面的a赋值为2呢?
代码我就不发了,这时的输出是
a=2
都不是诶
发现问题了吗?在判断成功后中断语句,这就是break的作用.意义不明?我们再来看一个程序.我们可以用这个来判断.
  1. public class book {
  2.         
  3.         public static void main(String[] args)
  4.         {
  5.           int a=7;
  6.           switch(a)
  7.           {
  8.             
  9.          
  10.                   case 1:
  11.                   case 2:
  12.                   case 12:
  13.                           System.out.println("银白的冬天");
  14.                           break;
  15.             case 3:
  16.             case 4:
  17.             case 5:
  18.                           System.out.println("翠绿的春天");
  19.                           break;
  20.             case 6:
  21.             case 7:
  22.             case 8:
  23.                     System.out.println("蔚蓝的夏天");
  24.                     break;
  25.             case 9:
  26.             case 10:
  27.             case 11:
  28.                     System.out.println("金黄的秋天");
  29.                     break;
  30.                   default:
  31.                           System.out.println("一年只有十二个月好吗!!!");
  32.          
  33.                         
  34.           }
  35.         }
复制代码


输出是

蔚蓝的夏天
怎么样~很不错是吧.
最后要注意的一点,default一定放在最后?当然不是,其实它可以放在任何位置.








作者: a438079631    时间: 2013-7-15 15:27
虽不明但觉厉。但是顶一个。
作者: huangshihan9900    时间: 2013-7-18 17:16
!!!!!!!!!!!!!!!!!
作者: 简单    时间: 2013-7-18 17:17
huangshihan9900 发表于 2013-7-18 17:16
!!!!!!!!!!!!!!!!!

太水小心删帖扣分。
作者: huangshihan9900    时间: 2013-7-22 17:34
下次不会了
作者: cpulws    时间: 2013-7-22 23:03
各种语言的switch都差不多
作者: wqrmcbbs    时间: 2013-8-12 16:07
顶顶顶顶顶
作者: 饕餮魍魉枭蹀躞    时间: 2013-8-27 09:44
好顶啊
作者: qihuansheji    时间: 2013-10-4 18:33
                                      000000
作者: xiashangyu    时间: 2013-10-27 11:11
赞个  
作者: qq3922382    时间: 2013-11-2 09:11
让我猜可能我猜不出来
作者: 313549211    时间: 2013-11-2 09:20
感觉有点像C啊!!
作者: 1123fff    时间: 2013-11-15 01:43
回复查看教程隐藏内容

不是水··是准备学习Java先回帖,
不然手机无法回复看不了
作者: richtofen    时间: 2013-11-30 19:03
先看看   
作者: cyz886    时间: 2013-12-8 16:01
学习了{:10_523:}
作者: 384    时间: 2014-1-3 12:48
很牛很强大👍
作者: xiurichie    时间: 2014-1-7 19:07
......人家是来看教程的,不是来回复的
作者: Cyanogen    时间: 2014-1-9 22:53
回复看看         
作者: 擦拭    时间: 2014-1-11 09:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: 氢氦锂uuo    时间: 2014-1-19 17:54
好好好好好好好好好好
作者: hsk001ufo    时间: 2014-1-20 10:33
设置结果回复可见啥心态=。=大家不会自己编译么
作者: 简单    时间: 2014-1-20 12:57
hsk001ufo 发表于 2014-1-20 10:33
设置结果回复可见啥心态=。=大家不会自己编译么

目的就是让大家自己编译试试。。但是,看看多少人回复是为了看答案就知道了。。我也好奇。。自己编译运行下不就出来了么。。{:10_524:}
作者: 新手求教    时间: 2014-2-9 08:27
为什么都要回复啊T T
作者: ◎◎◎◎◎◎    时间: 2014-2-12 17:36
看结果还要回复= =[gold_sword]
作者: 1025891364    时间: 2014-2-12 23:27
好复杂啊,不懂。
作者: 754042967    时间: 2014-2-16 11:08
输出结果是什么?
作者: HGK    时间: 2014-2-16 11:16
好深奥啊.....再多看几遍
作者: awt2003    时间: 2014-2-16 16:54
{:10_513:}
作者: 搅腋潭    时间: 2014-2-16 20:10
mcbbs有你更加精彩~
作者: qq578021633    时间: 2014-2-18 23:54
吊炸天,看看~
作者: Azrael_Kun    时间: 2014-2-22 19:59
求答案{:10_492:}
作者: alan08    时间: 2014-2-24 20:37
b?d?c?s?f?gui?bi?g?bu?f?c?bi?u?w?c?f?d?bi?u?cu?b?g?i?f?d?w?bi?u?ga?d?f?c?bu?g?i?d?w?f?c?bu?g?f?d?w?ci?u?b?g?f?c?d?b?w?gu?g?b?f?i?du?c?w?b?gu?w?f?c?d?bu?g?c?w?d?fu?i?g?b?d?c?f?w?i?b?gu?e?f?c?w?b?gui?c?f?we?g?iu
作者: 2629418114    时间: 2014-2-25 08:47
根本看不懂。
作者: wurr1989    时间: 2014-2-25 09:45
回帖看结果
作者: heng2c23    时间: 2014-2-27 19:12
OP 超好用的拉@@ 感恩
作者: 979710155    时间: 2014-3-20 14:08
fdffffffffffffffffff
作者: 593088930    时间: 2014-3-23 21:15
回复看内容。。
作者: 940258230    时间: 2014-3-26 12:05
。。。。。。

作者: 1759760728    时间: 2014-4-3 20:01
(⊙v⊙)嗯。。。。。。学习ing。。。。。。
作者: 164400720    时间: 2014-4-6 11:39
本帖最后由 164400720 于 2014-4-6 11:41 编辑

懂了..............................
作者: shaoyu    时间: 2014-4-8 20:04
ssssssssssssssssssssss...boom
作者: 暗凌    时间: 2014-4-20 19:18
MCBBS有你更精彩 谢谢LZ的教程
作者: 494308843    时间: 2014-4-25 22:14
- -  。。。。。。回个复。。。。
作者: XUU    时间: 2014-4-26 20:02
感觉有点看不懂
作者: XUU    时间: 2014-4-26 20:02
感觉有点看不懂
作者: 30080190A    时间: 2014-5-3 11:06
正努力看懂中。。。
作者: yh957083453    时间: 2014-5-10 10:28
讲解的简单易懂,不错,我已经猜到了输出结果
作者: wsliang    时间: 2014-6-13 17:24
                                woyaodaina
作者: 43999077    时间: 2014-6-28 22:18
用心良苦。。。
作者: 84491135    时间: 2014-6-29 12:34
还好我有点基础。。估计没基础的看完大部分都去撞墙了。。。
作者: Csgbshgf    时间: 2014-7-9 16:33
switch最无爱了QAQ
作者: Bryan33    时间: 2014-7-19 20:08
我赌5毛输出是a=1
作者: zdy000608    时间: 2014-7-20 22:41
有些看不懂呢....
作者: svd36kkla2    时间: 2014-8-1 19:01
好!很好!非常好!
作者: 萝卜吃米洛    时间: 2014-8-6 21:30
我凑,竟然全都看懂了。。
作者: hezhi998    时间: 2014-8-6 22:21
这种语言不是基础语言么?貌似现在都是运用c语言吧。。
好吧正好学习学习
作者: 修改器很好玩    时间: 2014-8-8 09:49
我要看回复可见
作者: wjhuuuu    时间: 2014-8-14 10:24
楼主你太帅了
作者: taotianrui    时间: 2014-8-14 22:26
顶一个~{:10_512:}
作者: a526026058    时间: 2014-8-15 13:02
回复看看
作者: 54牛X    时间: 2014-8-15 19:37
为什么还要先回复这么麻烦?
作者: 2697287132    时间: 2014-8-18 08:45
{:10_513:}................................................................................................
作者: a1123497159    时间: 2014-8-28 08:18
{:10_512:}{:10_512:}
作者: hiddentest    时间: 2014-8-28 12:08
0.0....好神器的干嚼
作者: nepanda    时间: 2014-9-1 17:29
.................
作者: hspdh413    时间: 2014-9-5 07:20
支持支持,感谢楼主的分享~~~~ *?゜??*:.?..?.:*?'(*?▽?*)'?*:.?. .?.:*?゜??*
作者: ycysyxx    时间: 2014-9-5 12:13
我只是求结果
作者: 我不叫杨浩    时间: 2014-9-8 06:42
呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵呵
作者: 142562356    时间: 2014-9-8 12:19
- - - - --
作者: jiongjionger    时间: 2014-9-11 14:29
break的意义是符合条件执行分支内的代码然后[at]中断[/at]
作者: 出来混,    时间: 2014-9-11 18:55
一起学JAVA 的有没有 加我QQ=。- 一起学 我有教程 970695276
作者: ycysyxx    时间: 2014-10-3 13:38
看答案~~~~~~~~~~~~~~~~~~~~~·
作者: 110000    时间: 2014-10-5 13:01
顶顶顶顶顶顶顶顶顶顶顶
作者: nielang008    时间: 2014-10-17 17:37
楼主辛苦了
作者: 流年菌    时间: 2014-10-18 07:14
虽然不知道是啥,不过好像很NB,顶{:10_512:}{:10_505:}
作者: 灌水DE游客    时间: 2014-10-18 08:11
标题: 有时候我觉得java还没有cmd好用
本帖最后由 灌水DE游客 于 2014-10-18 08:13 编辑

if exist lz msg %username% /time:10 2333333
) ELSE (
      goto continueprocess
)
:Continueprocess
cls
echo cmd大神小心路过一下
pause>nul

作者: Folsiti    时间: 2014-10-18 14:42
楼主好腻害
作者: THXBR2    时间: 2014-10-19 20:59
额好邪恶这个方法求回复
作者: 1592239141    时间: 2014-10-20 11:24
本帖最后由 1592239141 于 2018-8-15 15:29 编辑

看不懂a.a路过
作者: 504560256    时间: 2014-10-20 13:40
刚刚接触JAVA学习。。来瞅瞅,顺便膜拜下。
作者: chaoji_x    时间: 2014-10-20 15:55
怎么还有回复可见的东西
作者: 熊熊肉乎乎    时间: 2014-10-20 17:42
看看Default是什么时候执行地~
作者: a1358996505    时间: 2014-11-1 08:57
谢谢分享
作者: ZSYQWEZ    时间: 2014-11-8 22:51
又来看教程啦
作者: yykt123    时间: 2014-11-19 18:17
十分感谢
作者: 死扑街    时间: 2014-12-1 15:12
?????????
作者: sq2861619    时间: 2014-12-1 22:44
这个我是真心看完立马就蒙了 , 一点基础都没有
作者: 949138278    时间: 2014-12-2 11:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: herry0627    时间: 2014-12-3 20:08
我也是剛學java@@ 進來學習學習
作者: zhangqinglian    时间: 2014-12-4 15:16
学习了{:10_492:}
作者: 天鹅    时间: 2014-12-4 20:10
,lz好人,不会java的福音
作者: xx1743160565    时间: 2014-12-8 21:18
楼主棒!
作者: VarietyAir丶    时间: 2014-12-16 16:53
ihihihihihihihihihi
作者: liuyipeng001    时间: 2014-12-16 20:22
很难的样子......
作者: MC创始者    时间: 2015-1-22 11:17
很好,挺容易理解的
作者: 哦是小白    时间: 2015-1-22 15:03
( ̄ε(# ̄)☆╰╮o( ̄皿 ̄///)凑字数、、、、回复
作者: 1234567654321    时间: 2015-1-22 20:28
答案是a=1
作者: xuhuixuan163    时间: 2015-1-24 17:41
Mcbbs有你更精彩~
作者: cheesewoo    时间: 2015-1-27 07:56
楼主高大上
作者: 战斗大师    时间: 2015-1-28 11:22
我其实是来看隐藏的{:10_522:}