代码讲解:
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,也会继续往下走。