java switch语句用法,java中 使用switch语句实现学生成绩等级
java switch语句用法,java中 使用switch语句实现学生成绩等级详细介绍
本文目录一览: switch用法
1.switch选择结构:
语法: switch(表达式){
case 常量 1:
代码块1;
break;
case 常量2 :
代码块2;
break;
default:
代码块3;
break;
}
这里switch、case、default、break、都是java的关键字
2.
1中所示即为switch选择结构;而switch选择结构执行过程是啥呢?
执行过程:
先计算并获得switch后面小括号里的表达式或变量值,然后将计算结果顺序与每个case后的常量比较,当二者相等时,执行这个case块中的代码,当遇到break时,就跳出switch选择结构,执行switch选择结构之后的代码,如果任何一个case之后的常量与switch后的小括号中的值相等,则执行switch尾部的default块中代码。
3.
如何使用switch选择结构呢?
了解了switch选择结构之后呢,接下来做几个案例教大家如何使用switch选择结构, :
4.
public calss Compete{
public static void main( String [] args){
int mingci = 1; //名次
switch(mingci){
case 1 :
System.out.println("参加理工大学组织的一个月夏令营活动");
break;
case 2:
System.out.println("奖励惠普笔记本一台");
break;
case 3:
System.out.println("奖励惠普笔记本一台");
break;
default:
System.out.println("没有任何奖励");
break;
}
}
}
以上代码就实现了switch选择结构:运行结果如下图:
1、switch用作名词时意思是“开关”“转换”。用作动词时意思是“拧开关”“转变”“转换”,指通过某种措施或办法使某事物改变或改换其原有的位置、名称或运行方式等,引申可表示“挥动某物打某人”“打开”。
2、switch可用作及物动词,也可用作不及物动词。用作及物动词时,接名词或代词作宾语,也可接以动词不定式充当补足语的复合宾语。
近义词:
change
英 [t?e?nd?] 美 [t?e?nd?]
n. 变化;零钱;v. 改变
1、change作“改变,变化”解时是可数名词。
2、change作“找回的钱”解时,其前不加冠词,是不可数名词; 作“零钱”解其前加定冠词the,是不可数名词。
3、change后可有of短语或动词不定式作定语来修饰。
在C语言中,switch语句是开关语句,一般与case、break、default配合使用,对流程进行控制。
switch ( 变量表达式 ),C规定:如果case或default语句结束后没有break,则继续执行下面的语句,直到遇到break语句才跳出switch。
工作原理:
对表达式(通常是变量)进行一次计算。
把表达式的值与结构中 case 的值进行比较。
如果存在匹配,则执行与 case 关联的代码。
代码执行后,break语句阻止代码跳入下一个 case 中继续执行。
如果没有 case 为真,则使用 default 语句。
switch用法:
Switch用在编程中,如C语言中它经常跟Case一起使用,是一个判断选择代码。其功能就是控制流程流转的。
当变量表达式所表达的量与其中一个case语句中的常量相符时,就执行此case语句后面的语句,并依次下去执行后面所有case语句中的语句,除非遇到break;语句跳出switch语句为止。如果变量表达式的量与所有case语句的常量都不相符,就执行default语句中的语句。
遵守switch语句规则:
switch语句非常有用,但在使用时必须谨慎。所写的任何switch语句都必须遵循以下规则:
只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。
switch()的参数类型不能为实型 。case标签必须是常量表达式(constantExpression),如42或者'4'。case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。
switch 语句用法
功能:switch语句是多分支选择语句.用来实现多分支选择结构.if语句只有两个分支可供选择,而实际问题中常常要用到多分支的选择.例如,学生成绩分类(90为"A"等,80-89分为'B'等,70-90分为'C'等......).当然这些都可以用嵌套的if语句来外理,但如果分支较多,则嵌套的if语句层数多,程序沉余长而且可读性降低.C语言提供switch语句直接外理多分支选择,它相当于PASCAL语言中的CASE语句.
形式:switch(表达式)
{
case 常量表达式 1:语句 1
case 常量表达式 2:语句 2
.
.
.
case 常量表达式 n:语句 n
default:语句 n+1
}
例如,要求按照考试成绩的等级打印出百分制分数段,可以用switch语句实现:
switch(grade)
{
case 'A':printf("85-100\n");
case 'B':printf("70-84\n");
case 'C':printf("60-69\n");
case 'D':printf("<60\n");
default:printf("error\n");
}
说明:
(1) switch后面括弧内的"表达式",ANSI标准允许它为任何类型.
(2) 当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式的值都没有与表达式的匹配的,就执行default后面的语句.
(3) 每一个case的常量表达式的值必须互不相同,否则就会出现互相矛盾的现象(对表达式的同一个值,有两种或多种执行方案).
(4) 各个case各default的出现次序不影响执行结果。例如,可以先出现"default: ...",再出现"case 'D': ...",然后是"case 'A': ...".
(5) 执行完一个case后面的语句后,流程控制转移到下一个case继续执行."case常量表达式"只是起语句标号作用,并不是在该处进行条件判断.在执行swith语句时,根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断.例如,上面的例子中,若grade的值等于'A',则将连续输出:
85-100
70-84
60-69
<60
error
因此,应该在执行一个case分支后,使流程跳出switch结构,即终止switch语句的执行.
可以用一个break语句来达到此目的.将上面的switch结构改写如下:
switch(grade)
{
case 'A':printf("85-100\n"); break;
case 'B':printf("70-84\n"); break;
case 'C':printf("60-69\n"); break;
case 'D':printf("<60\n"); break;
default:printf("error\n");
}
最后一个分支(default)可以不加break语句.如果grade的值为'B',则只输出"70-84".
在case后面中虽然包含一个以上执行语句,但可以不必用花括弧括起来,会自动顺序执行本case后面所有的执行语句.当然加上花括弧也可以.
(6) 多个case可以共用一组执行语句,例如:
.
.
.
case 'A':
case 'B':
case 'C': printf(">60\n");break;
.
.
.
grade的值为'A','B'或'C'时都执行同一组语句.
执行过程:先计算并获得switch后面小括号里的表达式或变量值,然后将计算结果顺序与每个case后的常量比较。
当二者相等时,执行个case块中的代码,当遇到break时,就跳出switch选择结构,执行switch选择结构之后的代码。
如果任何一个case之后的常量与switch后的小括号中的值相等,则执行switch尾部的default块中代码。
Java中有Switch循环方式吗?
有的,具体语法
int a = 1;
switch (a){
case 1:
break;
case 2:
break;
default:
break;
}
有的,switch 语句格式如下:
switch ( 表达式 ) {
case 值 1 :
语句体 1 ;
break ;
case 值 2 :
语句体 2 ;
break ;
…
default :
语句体 n + 1 ;
break ;
}
Switch循环执行流程:
switch接收结果,
接收的结果和case后面的值1进行对比,成立,执行语句1,break 结束语句;
值1和switch接收的结果不匹配,和值2进行比较,成立,执行语句2, break,结束语句;
如果上面case都不匹配,执行default语句,语句n,break ,结束...
java中 使用switch语句实现学生成绩等级
#include
intmain()
{
doublescore;
intnKey;
while(scanf_s("%lf",&score)==1)
{
if(score<0||score>100)
{
printf("请输入0-100范围内的分数\n");
continue;
}
nKey=(int)score/10;
switch(nKey)
{
case0:
case1:
case2:
case3:
case4:
case5:
printf("E\n");
break;
case6:
printf("D\n");
break;
case7:
printf("C\n");
break;
case8:
printf("B\n");
break;
case9:
case10:
printf("A\n");
break;
default:
break;
}
}
return0;
}
扩展资料:switch用法
一般形式:
switch(表达式){
case常量表达式1: 语句1;
case常量表达式2: 语句2;
?
case常量表达式n: 语句n;
default: 语句n+1;
}
意思是先计算表达式的值,再逐个和case后的常量表达式比较,若不等则继续往下比较,若一直不等,则执行default后的语句;若等于某一个常量表达式,则从这个表达式后的语句开始执行,并执行后面所有case后的语句。
与if语句的不同:If语句中若判断为真则只执行这个判断后的语句,执行完就跳出if语句,不会执行其他if语句;而switch语句不会在执行判断为真后的语句之后跳出循环,而是继续执行后面所有case语句。
在每一case语句之后增加break语句,使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。
参考资料来源:switch-百度百科
java中switch语句
直接run一下 不就知道结果了,要想知道过程,可以在中间设置断点一步一步的走一遍。
y是5 ;
他是这样运行的,待我给你细细道来~
首先,x=2,进入switch,找case 2: 结果没有,执行default 得到y=4,然后继续执行 case 3:得到y = 5,break 跳出循环。
如果switch(values) ,里面没有values 的话,他会执行default 的语句,但是default 没有 break, 所以他会继续向下执行,直到 brea; 跳出循环。
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 :
...
}
java中switch的用法
switch(a){
case '1':
System.out.println("Hello World!");
break;
case '2':
System.out.println("I Love Java!");
break;
case '3':
System.out.println("Java is Easy!");
break;
default :
System.out.println("你的输入不合法!") ;
break;
}
语法没有错误,逻辑错在你输入的是int类型,而case后面跟的事char类型,他会将char类型转换成对象的int类型。所以不管你输入1,2,3都是不匹配的。
case '1':
原因就是你把 1 用 " "给整起来了。
请注意::"1"并不等于1.
所以应该写成:
switch(a){
case 1:
System.out.println("Hello World!");
break;
case 2:
System.out.println("I Love Java!");
break;
case 3:
System.out.println("Java is Easy!");
break;
default :
System.out.println("你的输入不合法!") ;
break;
}
错倒是没有错,只是有一个小小的知识点你没有理解而已。
这里 int a = scanner.nextInt(); a变量是整型
你在case的使用使用了字符型的常量'1'、'2'和'3' 这三个值会被自动转换成整型值49,50和51
所以当你输入1、2、3的时候,程序会进行到default
你输入一下49、50或51再看一下。
以为你的case 后面跟的是 '1',
'1'属于char类型,但是 你的a是int类型
所以无论输入1,2,3那个都不会走case而直接走default
在JAVA里面char和int是可以相互转换的 所以这样写switch也不会报错
你的case 不要用'1',要用1,要是你用'1',说明你要接受的是char的。但是你的a是int的。他总是报输入错误,因为数据类型不一样。
switch(a){
case 1:
System.out.println("Hello World!");
break;
case 2:
System.out.println("I Love Java!");
break;
case 3:
System.out.println("Java is Easy!");
break;
default :
System.out.println("你的输入不合法!") ;
break;
}
这样就对了!
java中switch的用法
首先从原理上来阐述这个问题:
switch(表达式)
{
case 常量表达式1:语句1;
....
case 常量表达式2:语句2;
default:语句;
}
1.default就是如果没有符合的case就执行它,default并不是必须的.
2.case后的语句可以不用大括号.
3.switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型.
4.一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句.
原理归原理,下面是几个容易混淆的例子.
1.标准型(case后面都有break语句)
int i=3;
switch(i)
{
case 1:
System.out.println(1);
break;
case 2:
System.out.println(2);
break;
case 3:
System.out.println(3);
break;
default:
System.out.println("default");
break;
}
输出结果:
3
2.特殊型1(不是完全有break语句,可以完成一些特殊应用)
int year=2005;
int month=3;
int day;
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day=31;
break;
case 2:
day=28;
break;
case 4:
case 6:
case 9:
case 11:
day=30;
break;
}
这里 day=31;
3.特殊型2(default的位置)
int i=1;
switch(i)
{
case 1:
System.out.println(1);
default:
System.out.println("default");
case 2:
System.out.println(2);
break;
case 3:
System.out.println(3);
break;
}
输出结果:
1
default
2
java里面switch的用法是怎样的
跟C#、c++的switch语句一样:switch(表达式)
{
case 常量表达式1:语句1;
....
case 常量表达式2:语句2;
default:语句;
}例如:
switch(x)
{
case 1:
case 2:
case3: System.out.println("haha");
break;
case4: System.out.println("hehe");
}
switch(表达式或一个值){ case 表达式或者一个值 1:语句1;break;case 表达式或者一个值 2:语句2;break;````case 表达式或一个值 n:语句n;break;default :语句序列n+1;break;}上面所有的break也可以不要,根据自己编程的需要;先计算表达switch后面表达试的值,然后进入语句块,顺序的执行语句序列,与case后面的表达式进行匹配,如果匹配上执行case后面的语句,后面有break就跳出switch,如果没有匹配上,就进入default语句,执行,再如果,case语句没有匹配上,switch语句中也没有default语句,那么就什么也不执行直接跳出switch语句 }
JAVA中switch语句详解与用法,通俗易懂,小白一个
switch说白了,就是你走路,忽然前面多了很多路口,你走到第一个路口,站牌上写着天津,但是你要去的是上海。你就知道走这里不对,一直找到第4个路口,上面写着上海,你就知道,是走这里。你传进去的条件会寻找case的值,对应以后执行case后面对应的程序。
int i = (int)Math.round(Math.random()*9+1); //在1到10中取随机数i
int j;
switch(i){ //switch的语法
case 1:j=1; //case 1表示if(i==1)为true的时候执行下面的语句。注意此处没有break,因此在执行完j=1之后,会继续判断下面的语句是否为真,即case 2,结果为false,仍然没有break,继续判断case 3,出现break,跳出switch判断。另外判断语句case 1之后是半角冒号,不是分号。
case 2:j=2;
case 3:j=3;break;
...
default: break; //如果所有case语句全部为false,则执行default之后的语句。缺省为break,即跳出。
}
嘛,这个应该够浅显易懂了。还不明白可以再问我
java switch语法特点
switch语句特点:1、switch语句选择的类型只有四种:byte,short,int,char。2、case与default没有顺序。先执行第一个case,没有匹配的case执行default。3、结束switch语句的两种情况:①遇到break,②执行到switch语句结束。4、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。5、进入switch语句后,执行顺序是先执行case,然后从上到下,最后再执行default。即使default放在case上面,执行顺序也不变。for语句特点for(初始化表达式;循环条件表达式;循环后的操作表达式){执行语句;(循环体)}for里面的三个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。for循环的初始化表达式、循环后的操作表达式可以是多个表达式,通过逗号分隔。例如:for(inta=1,b=2;a<2&b<3;a++,b++){}