switch多選擇結構
多選擇結構還有一個實現方式是switch case語句
switch case 語句判斷一個變量與一系列值中某個值是否相等,每個值稱為一個分支
switch語句中的變量類型可以是:
byte 、short 、int、或者char
從JavaSE 7開始
switch支持字符串String類型了
同時case標簽必須為字符串常量或字面量
switch (expression){
case value :
//接語句
break;//可選
case value :
//語句
break;//可選
//你可有任意數量的case語句
default://可選
//語句
}
public class SwitchDemo01 {
public static void main(String[] args) {
// case 穿透,break擊穿,后接break即switch語句被擊穿,一直往下跑,不再終止
//switch 匹配一個具體的值
char grade ='B';
switch (grade){
case 'A':
System.out.println("優秀");
break;//可選
case 'B' :
System.out.println("良好");
case 'C' :
System.out.println("及格");
case 'D':
System.out.println("再接再厲");
case 'E':
System.out.println("掛科");
default:
System.out.println("未知等級");
//此時若grade成B,輸出良好 及格 再接再厲 掛科 未知等級
// 若grade改成A,則輸出優秀,因為有break擊穿,終止
//若grade 改成無關的如F,輸出為未知等級
//即switch中先找到一個case ,輸出,如果后邊有break擊穿,則循環停止,若沒有,一直往下走;若定位不到一個case,則從defaut輸出
//因此。如果想得到單一的結果,則每一個case后邊加上一個break,用於停止循環
}
}
}
即向下邊一樣每個后邊加一個break,用於終止循環
public class SwitchDemo01 {
public static void main(String[] args) {
// case 穿透,break擊穿,后接break即switch語句被擊穿,一直往下跑,不再終止
//switch 匹配一個具體的值
char grade ='B';
switch (grade){
case 'A':
System.out.println("優秀");
break;//可選
case 'B' :
System.out.println("良好");
break;//可選
case 'C' :
System.out.println("及格");
break;//可選
case 'D':
System.out.println("再接再厲");
break;//可選
case 'E':
System.out.println("掛科");
break;//可選
default:
System.out.println("未知等級");
從JavaSE 7開始
switch支持字符串String類型了
例
public class SwitchDemo02 {
public static void main(String[] args) {
String name = "狂神";
switch (name){
case "秦疆":
System.out.println("秦疆");
break;
case "狂神":
System.out.println("狂神");
break;
default:
System.out.println("是啥");
//輸出狂神
}
}
}
反編譯class文件
public class SwitchDemo02 {
public static void main(String[] args) {
//JDK7的新特性,表達結果可以是字符串!!!
//字符的本質是數字,字符用hashCode()來一一對應的,從反編譯程序中可看出
//反編譯: java....class(字節碼文件)....反編譯(在這里用IDEA來反編譯)
//反編譯 看源碼,看class文件的源碼
//直接找到project structure中找到要反編譯的文件,復制路徑,打開文件找到要反編譯的class文件,復制,然后打開IDE中的一個代碼程序文件夾(open in directory path),粘貼進去即得到反編譯的程序
String name = "狂神";
switch (name){
case "秦疆":
System.out.println("秦疆");
break;
case "狂神":
System.out.println("狂神");
break;
default:
System.out.println("是啥");
}
}
}
循環結構
while循環
do .....while循環
for循環
在java5中引入了一種主要用於數組的增強型for循環
while循環
最基本的循環,結構為:
while(布爾表達式){
//循環內容
}
注意:
1.只要布爾表達式為true,循環就會一直執行下去
2.我們大多數情況是會讓循環停止下來的,我們需要一個讓表達式失效的方式來結束循環
3.少部分情況需要循環一直執行,比如服務器的請求響應監聽等
4.循環條件一直為true就會造成無限循環(死循環),我們正常的業務編程中應該盡量避免死循環。會影響程序性能或者造成程序卡死崩潰!
public class WhileDemo01 {
public static void main(String[] args) {
//輸出1-100
int i = 0;
while (i<100){
i++;
System.out.println(i);
}
}
}
注意i<100,i=100時,i++結果101賦值給i輸出
死循環
public class WhileDemo02 {
public static void main(String[] args) {
while (true){
//while里一直為true,沒有限制,一直循環下去
//主要用於等待客戶端連接,定時檢查等這種應用
}
}
}
計算1+2+3+...+100=?
public static void main(String[] args) {
//計算1+2+3+....+100等於多少?
int i = 0 ;
int sum = 0;
while (i<100){
i++;
sum=sum + i;
}
System.out.println(sum);
//輸出5050
}
}
或者下面這樣也可,主要看i++的位置判斷何時終止
public class WhileDemo03 {
public static void main(String[] args) {
//計算1+2+3+....+100等於多少?
int i = 0 ;
int sum = 0;
while (i<=100){
sum=sum + i;
i++;
}
System.out.println(sum);
//輸出5050
}
}
