Java流程控制:選擇結構
阿新 • • 發佈:2021-07-12
選擇結構
if 單選擇結構
-
很多時候我們需要去判斷一個東西是否可行,然後才去執行,這樣的過程在程式中用 if 語句來表示
-
語法:
if (布林表示式) { //如果布林表示式為true,則執行的語句體 執行我要上天操作; }
-
示例:
package com.wanggenji.struct; import java.util.Scanner; public class IfDemo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("請輸入內容:"); String s = scanner.nextLine(); //equals:判斷字串是否相等 if (s.equals("Hello")) { System.out.println(s); } System.out.println("End"); scanner.close(); } }
if 雙選擇結構
-
如果條件滿足,我們走方案一;如果條件不滿足,我們走方案二
-
語法:
if (布林表示式) { //如果布林表示式為true,則執行的語句體 }else{ //如果布林表示式為false,則執行的語句體 }
-
示例:
package com.wanggenji.struct; import java.util.Scanner; public class IfDemo02 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("請輸入成績:"); int score = scanner.nextInt(); if (score>60){ System.out.println("及格"); }else{ System.out.println("不及格"); } scanner.close(); } }
if 多選擇結構
-
有很多種選擇,滿足某一個條件就執行某一種選擇。
-
語句至多有1個 else 語句,else 語句在所有的 else if 語句之後。
-
if 語句可以有若干個 else if 語句,他們必須在 else 語句之前。
-
只要其中一個 if 語句檢測為 true ,其他 if 跳過以及 else 語句都將跳過執行。
-
語句:
if (布林表示式1) { //如果布林表示式1為true,則執行的語句體 }else if (布林表示式2){ //如果布林表示式2為true,則執行的語句體 }else if (布林表示式3){ //如果布林表示式3為true,則執行的語句體 }else if (布林表示式4){ //如果布林表示式4為true,則執行的語句體 }else{ //如果以上都不執行,則執行的語句體
-
示例:
package com.wanggenji.struct; import java.util.Scanner; public class IfDemo03 { public static void main(String[] args) { //成績評級 Scanner scanner = new Scanner(System.in); System.out.println("請輸入成績:"); int score = scanner.nextInt(); if (score==100){ System.out.println("滿分"); }else if (score>=90 && score<100){ System.out.println("A級"); }else if (score>=80 && score<90){ System.out.println("B級"); }else if (score>=70 && score<80){ System.out.println("C級"); }else if (score>=60 && score<70){ System.out.println("D級"); }else if (score>=0 && score<60){ System.out.println("不及格"); }else{ System.out.println("成績不合法"); } scanner.close(); } }
巢狀的if語句
-
使用巢狀的 if ... else 語句是合法的。你可以在另一個 if 或者 else if 語句中使用 if 或 else if 語句。你可以想 if 語句一樣巢狀 else if ... else。
-
語法:
if (布林表示式1){ //如果布林表示式1為true,則執行語句 if (布林表示式2){ //如果布林表示式1和布林表示式2都為true,則執行程式碼 } }
switch多選擇結構
-
多選擇結構還有一個實現方法,switch case 語句。
-
switch case 語句判斷一個變數與一系列值中某個值是否相等,每個值稱為分支。
-
switch 語句中的變數型別可以是:
- byte、short、int 或者 char。
- 從 Java Se 7開始
- switch 支援字串型別了
- 同時 case 標籤必須為字串常量 或 字面量。
-
語法:
switch (expression){ case value: //語句 break;//可選 case value: //語句 break;//可選 case value: //語句 break;//可選 //你可以有任一數量的case語句 default://可選 //語句 }
-
case 穿透 switch 匹配一個具體的值
-
要注意寫 break ,不然就會出現 case 穿透,匹配的 case 執行完後下面的 case 還在執行。
char grade = 'c'; 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("未知等級");
-
JDK 7 以後的版本 switch 支援字串型別
//case穿透 ,switch匹配一個具體的值 //JDK7的新特性,表示式結果可以使字串 //字串的本質還是數字,雜湊code String name = "ak"; switch (name){ case "張三": System.out.println("就是我張三了"); break; case "李四": System.out.println("就是我李四了"); break; case "王五": System.out.println("就是我王五了"); break; default: System.out.println("弄啥嘞!小老弟");
-
字串的比較是生成一串雜湊值來比較。。。?每一個物件都會對應一個hashcode。
-
IDEA 反編譯,在 Project Struct ——Project——最底下是輸出class檔案的資料夾 ——進入資料夾把 class 檔案複製進入java資料夾下開啟就行了。
-
反編譯可以看到執行的原始碼,通過反編譯可以學習到優秀的方法思想。
-
養成看原始碼的習慣。