问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中switch语句

发布网友 发布时间:2022-05-12 03:57

我来回答

3个回答

热心网友 时间:2023-11-08 22:02

switch 语句的格式:
 
switch ( 整型或字符型变量 )
{
 case 变量可能值1 :
  分支一;
 break;
case 变量可能值2 :
  分支二;
 break;
case 变量可能值3 :
  分支三;
 break;
...
default :
最后分支;

 
在 switch 的语法里,我们要学到4个关键字:switch、case 、break、default。
 
在 switch ( 变量 ) 这一行里,变量只能是整型或字符型。程序先读出这个变量的值,然后在各个"case"里查找哪个值和这个变量相等,如果相等,就算条件成立,程序执行相应的分支,直到碰上break或者switch语句结束。
 
 
了解一下switch,case,break,default的意思,对理解前面的一切也会有帮助,它们分别是:开关,情况,中断,默认(值)。那么用一句话套起来的说法就是:根据开关值的不同,执行不同的情况,直到遇上中断;如果所有的情况都不符合开关值,那么就执行默认的分支。
 
最后说一下关于switch中非常重要的几个注意点。
 
第一、switch ( 整型或字符型变量 ) 中,变量的类型如文中所标,只能是整型和字符类型。它们包含 int,char。当然无符类型或不同的长度整型(unsigned int,short,unsigned char)等都可以。另外,枚举类型(enum)内部也是由整型或字符类型实现。所以也可以。实型(浮点型)数就不行,如:
float a = 0.123;
switch(a) //错误!a不是整型或字符类型变量。
{
....
}
 
第二、case 之后可以是直接的常量数值,如例中的1、2、3、4,也可以是一个使用常量计算式,如2+2等,但不能是变量或带有变量的表达式,如 a * 2等。当然也不能是实型数,如4.1,或2.0 / 2 等。
switch(formWay)
{
case 2-1 : //正确
...
case a-2 : //错误
...
case 2.0 : //错误
...
}
另外,在case 与常量值之后,需要一个冒号,请注意不要疏忽。
 
第三、break 的作用。
break 使得程序在执行完选中的分支后,可以跳出整个switch语句(即跳到switch接的一对{}之后),完成switch。如果没有这个break,程序将在继续前进到下一分支,直到遇到后面的break或者switch完成。
比如,假设现在程序进入case 1: 中的分支,但case 1 的分支这回没有加break:
 
case 1 :
System.out.println("您是通过搜索引擎来到本网站的。");
case 2 :
System.out.println("您是通过朋友介绍来到本网站的。");
 
那么,程序在输出 "您是通过搜索引擎来到本网站的。" 之后,会继续输出case 2中的 "您是通过朋友介绍来到本网站的。" 。
请大家将前面实例中的代码片段改为如下(红色部分,即将所有的break都通过加//使之无效。):
...
  case 1 :
System.out.println("您是通过搜索引擎来到本网站的。" );
//break;
case 2 :
System.out.println("您是通过朋友介绍来到本网站的。");
//break;
case 3 :
System.out.println("您是通过报刊杂志来到本网站的。");
//break;
case 4 :
System.out.println("您是通过其它方法来到本网站的。");
//break;
default :
System.out.println("错误的选择!请输入1~4的数字做出选择。");
...
 
运行后,结果会是如何?请大家动手试试,然后在作业中回答我。
 
第四、default是可选中,前面我们已经说过它的用处,及如果没有default,程序在找不到匹配的case分支后,将在switch语句范围内不做什么事,直接完成switch。大家也可以在实例中将default的代码注释掉,然后试运行,并且在选择时输入5。
...
//default :
//cout << "错误的选择!请输入1~4的数字做出选择。" << endl;
...
 
第五、必要时,可在各个case中使用{}来明确产生独立的复合语句。
前面我们在讲if...语句和其它流程控制语句时,都使用{}来产生复合语句:
if (条件)
{
分支一;
}
除非在分支中的语句正好只有一句,这里可以不需要花括号{}。但在switch的各个case语句里,我们在语法格式上就没有标出要使用{},请看:
switch ( 整型或字符型变量 )
{
 case 变量可能值1 :
  分支一;
 break;
case 变量可能值2 :
....
}
 
一般教科书上只是说 case 分支可以不使用{},但这里我想提醒大家,并不是任何情况下case分支都可以不加{},比如你想在某个case里定义一个变量:
switch (formWay)
{
case 1 :
int a=2; //错误。由于case不明确的范围,编译器无法在此处定义一个变量。
...
case 2 :
...
}
 
在这种情况下,加上{}可以解决问题。
switch (formWay)
{
case 1 :
 { 
int a=2; //正确,变量a被明确限定在当前{}范围内。
...
 } 
case 2 :
...
}

热心网友 时间:2023-11-08 22:02

直接run一下 不就知道结果了,要想知道过程,可以在中间设置断点一步一步的走一遍。

热心网友 时间:2023-11-08 22:03

y是5 ;
他是这样运行的,待我给你细细道来~
首先,x=2,进入switch,找case 2: 结果没有,执行default 得到y=4,然后继续执行 case 3:得到y = 5,break 跳出循环。
如果switch(values) ,里面没有values 的话,他会执行default 的语句,但是default 没有 break, 所以他会继续向下执行,直到 brea; 跳出循环。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
形容手表很舒服的句子 情侣手表的对话句子 租门面和房东鉴了十年合同,房东要退店面,我可以不退吗,继续经 ...一篇朝花夕拾里十篇小短文的主要内容及作者的情感和主要人物的... 什么叫狼狗 狼狗的生活习性有哪些? 起个姓罗好听的宝宝名字 野火的近义词 个是词语解释 请旌词语解释 背景怎么设置 气球灯笼布置一个会场用灯笼挂外层气球挂内层每边挂灯笼13个四角都挂要用灯笼和气球各多少个? switch选择结构的语法和执行顺序是什么 分析说明switch语句的执行流程 C语言中Switch语句执行过程是怎样的 如何选择主板、CPU、内存来合理配置整机 汽车贴膜怎么那么贵啊? 民办学校需要每期都交学位费吗? 求郑姓女宝宝国历2013年5月29日14点16分生取名字 教育法私立学校收费规定? 商品房实体女儿墙高度1.5米,离客厅窗户0.6米,我能拒绝收房吗?国家对女儿墙靠窗户距离有没有标准 郑姓女宝宝羊年阴历10月25出生 女宝宝起名 常用的电影术语有哪些 电影相关术语 郑姓女宝宝起名 办理民办学校需要什么手续 影视术语有哪些,比如“色调” 最好有解释 私立学校收费标准 您好,请问私立学校收费标准,国家有规定吗? 动漫中的&quot;企划&quot;,&quot;声优&quot;,&quot;监制&quot;具体是什么意思,又都是具体做什么的? 河南驾驶证超6个月没审过期怎么办 实木地板种类有哪些 实木地板的优缺点 医疗期满后,公司不给安排工作,辞职书应该怎么写 letstalk是什么软件? 新交规5座车坐6个人,是否要吊销驾照6个月 爱普生uv打印打印前需要处理图片吗? 请朋友们帮帮忙看看这个是什么游戏,很老的游戏了,但是不知道叫什么名字!!! 什么送水系统比较好用 想买想买农夫山泉空桶在南宁的怎么联系呢 Uv打印图片间隙 龙之崛起 第一关为什么任务完不成 怎么用uv打印机打印出8d效果的图片 说说你是怎样看待水桶的? 2、谈谈你对水夫的评价。 3你是怎样看待自己的长处和短处的呢? 张咏传全文翻译 你好!向你请教龙之崛起的问题 附近桶装水送水电话谁有? 免费送水活动 送水服务 cpu与io端口之间进行数据传输的方式有哪几种 冰心写的母爱的作文