本文目录一览:
java switch(表达式)中表达式的类型都可以是哪些类型?
java中的switch选择结构可以使用数据类型的数据:
- int
- char
- byte
- short
- 枚举
- String(PS:对JDK版本有要求,必须为1.7及以上版本)
代码示例:
public class Test_char {
public static void main(String[] args) {
char c = '二';
switch(c){
case '一':
System.out.println("1.char类型");
break;
case '二':
System.out.println("2.char类型");
break;
}
}
}
扩展资料
switch表达式代码:
#include<stdio.h>
int main()
{
double score;
printf("请输入分数:\n");
scanf("%lf", &score);
switch((int)(score/10)) // switch((int)score/10)出现严重错误
{
case 10:
case 9:
printf("A(最好)\n");
break;
case 8:
printf("B(优秀)\n");
break;
case 7:
printf("C(良好)\n");
break;
case 6:
printf("D(及格)\n");
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
printf("E(不及格)\n");
break;
default:
printf("Error!\n");
}
}
参考资料:百度百科 switch (计算机语言关键字)
java中switch语句
switch 语句的格式:
switch ( 整型或字符型变量 ) {
case 变量可能值1 :
分支一;
break;
case 变量可能值2 :
分支二;
break;
case 变量可能值3 :
分支三;
break;
...
default :
最后分支;
}
在 switch 的语法里,我们要学到4个关键字:switch
、case
、break
、default
。
在 switch ( 变量 )
这一行里,变量只能是整型或字符型。程序先读出这个变量的值,然后在各个case
里查找哪个值和这个变量相等,如果相等,就算条件成立,程序执行相应的分支,直到碰上break
或者switch语句结束。
用一句话套起来的说法就是:根据开关值的不同,执行不同的情况,直到遇上中断;如果所有的情况都不符合开关值,那么就执行默认的分支。
关于switch中非常重要的几个注意点:
第一、变量的类型
switch ( 整型或字符型变量 )
中,变量的类型如文中所标,只能是整型和字符类型。它们包含 int
, char
。当然无符类型或不同的长度整型(如 unsigned int
, short
, unsigned char
)等都可以。另外,枚举类型(enum
)内部也是由整型或字符类型实现。所以也可以。实型(浮点型)数就不行,例如:
float a = 0.123;
switch(a) //错误!a不是整型或字符类型变量。
{
...
}
第二、case之后的值
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
中的 "您是通过朋友介绍来到本网站的。"
。
第四、default是可选的
前面我们已经说过它的用处,及如果没有 default
,程序在找不到匹配的 case
分支后,将在 switch
语句范围内不做什么事,直接完成 switch
。大家也可以在实例中将 default
的代码注释掉,然后试运行,并且在选择时输入 5
。
第五、必要时,可在各个 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语句特点:
- switch语句选择的类型只有四种:
byte
,short
,int
,char
。 case
与default
没有顺序。先执行第一个case
,没有匹配的case
执行default
。- 结束
switch
语句的两种情况:- 遇到
break
- 执行到
switch
语句结束
- 遇到
- 如果匹配的
case
或者default
没有对应的break
,那么程序会继续向下执行,运行可以执行的语句,直到遇到break
或者switch
结尾结束。 - 进入
switch
语句后,执行顺序是先执行case
,然后从上到下,最后再执行default
。即使default
放在case
上面,执行顺序也不变。
for语句特点
for(初始化表达式;循环条件表达式;循环后的操作表达式) {
执行语句;(循环体)
}
for里面的三个表达式运行的顺序:
- 初始化表达式只读一次
- 判断循环条件,为真就执行循环体
- 然后再执行循环后的操作表达式
- 接着继续判断循环条件,重复这个过程,直到条件不满足为止 for循环的初始化表达式、循环后的操作表达式可以是多个表达式,通过逗号分隔。 例如:
for(int a = 1, b = 2; a < 2 && b < 3; a++, b++) {
}
java switch语句有哪些?
java switch语句有哪些如下:
Scanner input = new Scanner (System.in);
int temp=0;
System.out.println("请输入等级:");
String a = input.next();
if(a.equals("优秀")){
temp=0;
}else if(a.equals("中等")){
temp=1;
}
switch (temp) {
case 0:
System.out.println("100");
break;
case 1:
System.out.println("80");
break;
default:
...
}
编程工具:
- Eclipse:一个开放源代码的、基于Java的可扩展开发平台。
- NetBeans:开放源码的Java集成开发环境,适用于各种客户机和Web应用。
- IntelliJ IDEA:在代码自动提示、代码分析等方面的具有很好的功能。
- MyEclipse:由Genuitec公司开发的一款商业化软件,是应用比较广泛的Java应用程序集成开发环境。
- EditPlus:如果正确配置Java的编译器“Javac”以及解释器“Java”后,可直接使用EditPlus编译执行Java程序。
java中switch的用法
java中switch的用法
首先从原理上来阐述这个问题:
switch(表达式) {
case 常量表达式1:
语句1;
...
case 常量表达式2:
语句2;
default:
语句;
}
default
就是如果没有符合的case
就执行它,default
并不是必须的。case
后的语句可以不用大括号。switch
语句的判断条件可以接受int
、byte
、char
、short
,不能接受其他类型。- 一旦
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