java switch 例子_java——switch经典案例

代码讲解:

1、输入月工资金额,算出扣税金额。

规则: 工资3500及以下,扣税0

工资3500-5000之间,扣税0.1%

工资5000-8000之间,扣税0.2%

工资8000-10000之间,扣税0.3%

工资10000以上,扣税0.4%

例如:张三工资8500,扣税过程如下

8500-8000 =500 这部分的扣税是 5000.3%

8000-5000 =3000这部分的扣税是30000.2%

5000-3500 =1500这部分的扣税是15000.1%

3500以下的不扣税

张三的扣税总额= 5000.3%+30000.2%+15000.1%

2、输入一个年份一个月份,打印该月的天数。

为什么要输入一个年份?

一三五七八十腊(31天)

四六九 十一(30天)

二(闰年29,平年28)

Scanner sc = new Scanner(System.in);

System.out.println("input a year:");

int y = sc.nextInt();

System.out.println("input a month:");

int m = sc.nextInt();

int day = 0;//存天数

if(m1||m3||m5||m7||m8||m10||m12){

day = 31;

}else if(m4||m6||m9||m11){

day = 30;

}else{

if(y%4000||y%4==0&&y%100!=0){

day=29;

}else{

day=28;

}

}

System.out.println("天数:"+day);

职教云活动1:

输入一个年份一个月份,打印该月的天数。

为什么要输入一个年份?

一三五七八十腊(31天)

四六九 十一(30天)

二(闰年29,平年28)

运行验证:输入自己的出生年月,打印当月天数。

代码和运行结果抓图。

职教云活动2:

假设你的习惯是:

周一、三、五学习,周二、四、六打球,周日看电影。

模仿课上示例,输入当前是周几(用1-7表示),

根据条件输出,“我该学习了”“我该打球了”“我该去看个电影,放松一下了”

代码和运行结果抓图。

判断条件有两类:

1、数据在某个区间(n>=80&&n<=90)

2、数据是一些点(n1||n2)

当条件是一些点的时候,可以用另一种语句结构

来替换if-else if-else

这个语句就是switch-case。

语法:

switch(表达式){

case 值1: 语句1;

case 值2:语句2;

case 值3:语句3;

...

default: 其他语句;

}

关键字:break

用于跳出switch所控制的语句块。

switch表达式会挨个和case后面的值对比,

如果表达式的值值1,从语句1开始执行。

如果表达式的值值2,从语句2开始执行。

...

否则,执行其他语句。

如果遇到break,则直接退出switch语句块。

例子:输入一个整数,提示你输入的是星期几。

Scanner sc = new Scanner(System.in);

System.out.println("input a week:");

int w = sc.nextInt();

switch(w){

case 1:

System.out.println("星期一");

break;

case 2:

System.out.println("星期二 ");

break;

case 3:

System.out.println("星期三");

break;

case 4:

System.out.println("星期四");

break;

case 5:

System.out.println("星期五");

break;

case 6:

System.out.println("星期六");

break;

case 7:

System.out.println("星期日");

break;

default:

System.out.println("输入错误");

}

验证没有break的运行效果。

职教云活动3(有图片):

1、进入欢迎界面;

2、输入账号,密码(用整数);

3、如果输入不对,则退出整个程序;

System.exit(0);表示退出整个程序;

4、如果没有退出,则开始执行后续代码:

根据提示,输入相应的选项,得到相应的输出。

代码和运行结果抓图。

注意:

1、switch表达式结果的类型必须和case后面

的数据类型匹配,一般是整型,如int,char等,

1.7版本以后,也可以是字符串。但不能是浮点数。

2、case后面的值不能重复

3、break可有可无,看程序要求

4、default可有可无,其范围是除了所有case

以外的情况,无论其在前还是在后。

5、case有顺序,顺序不同结果不同。

6、case后面只能是常数。

7、case后面也可以没有语句。

Scanner sc = new Scanner(System.in);

System.out.println("input a week:");

int w = sc.nextInt();

switch(w){

case 1:

case 5:

case 3:

System.out.println("星期三");

break;

case 4:

case 2:

case 6:

System.out.println("星期六");

case 7:

System.out.println("星期日");

break;

default:

System.out.println("输入错误");

}

----三次执行结果--

input a week:

5

星期三

input a week:

7

星期日

input a week:

4

星期六

星期日

注意:switch语句会将小括号里面的表达式,和case后面的数挨个对比,找到

第一个与之匹配的(仅匹配一次),然后开始逐个执行从它开始后的每个case后面的语句,

直到遇到break;

就算case后面没有代码,只要看不到break,也会继续往下走。

小窍门:

eclipse格式化代码

(全选ctrl+A ,然后 ctrl+shift+f)

eclipse代码提示 alt+/

批量注釋 選中 - ctrl+/

补充知识:

java的三种注释:

单行

多行

文档注释

一、代码演示:

给定月份和年份,打印这个月的天数:

int m = 12;//月份

int y = 2014;//年份

int day = 0;//天数

switch(m){

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:day=31;break; //前面任何一个月份出现,都会执行这句话

case 4:

case 6:

case 9:

case 11:day = 30;break;//前面任何一个月份出现,都会执行这句话

case 2:

if(y%4000||y%40&&y%100!=0){

day = 29;

}else{

day = 28;

}

default:System.out.println("月份只有1-12");

}

System.out.println(day);

职教云活动1:用switch语句实现输入一个年份,一个月份,

输出该月有几天的代码,把代码和运行结果截图。

二、代码分析

例1:

int x = 5,y = 1;

switch(x){

case 4: y++;

default: y--;//除了4和5以外的情况

case 5: y+=4;//5是第一个匹配的

}

System.out.println(y); //5

例2:

int x = 5,y = 1;

switch(x){

case 4: y++;

default: y--;//除了4和1以外的情况y=y-1=0

case 1: y+=4;

//由于没有break,这个还得执行,y=y+4=4

}

System.out.println(y); //4

例3:

int x = 5,y = 1;

switch(x){

case 4: y++;

default: y--;//除了4和1以外的情况y=y-1=0

break;

case 1: y+=4;//由于有break,这个不执行

}

System.out.println(y); //0

例4:

int x = 5,y = 1;

switch(x){

default: y--;//成立y=y-1=0

case 4: y++;break;

//继续执行y=y+1=1后跳出

case 1: y+=4;

}

System.out.println(y);

例5:

int x = 5;

switch(x--){

case 5: x--;

case 4: x+=4;break;

default: x--;

}

System.out.println(x);//7(为什么,描述分析过程)

写个随机数代码,生成学生学号提问??

例6:

int x = 10;

switch(x){

case 10:

case 5 :

case 20: x++;

default : x++;

case 30: x++;break;

case 40: x++;

}

System.out.println(x);

例7:

int x = 5,y=1;

switch(x){

case 5 : x++;

case 10:

case 15: y++;break;

case 20: x++; y++;

default : x++; y++;

case 30: x++;break;

case 40: x++;

}

System.out.println(x); //6

System.out.println(y); //2

注意:switch语句会将小括号里面的表达式,和case后面的数挨个对比,找到

第一个与之匹配的(仅匹配一次),然后开始逐个执行各个case后面的语句,直到遇到break;

就算case后面没有代码,只要看不到break,也会继续往下走。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值