代碼講解:
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,也會繼續往下走。