20211208葛洺君 2022-2022-2 《Python程式設計》實驗一報告
阿新 • • 發佈:2022-03-23
if單選擇結構
我們很多時候需要去判斷一個東西是否可行,然後我們才去執行,這樣一個過程在程式中用if語句來表示:
if(布林表示式){
//如果布林表示式為true將執行的語句
}
意義:if語句對條件表示式進行一次測試,若測試為真,則執行下面的語句,否則跳過該語句。
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //接收使用者輸入 System.out.print("請輸入內容:"); String s = scanner.nextLine(); if (s.equals("Hello")){ //equals是用來比較字串是否一致的 System.out.println("輸入的是:"+s); } System.out.println("End"); scanner.close(); }
if雙選擇結構
if(布林表示式){
//如果布林表示式的值為true
}else{
//如果布林表示式的值為false
}
package Demo; import java.util.Scanner; //匯入Scanner類 public class Hello { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("請輸入成績:"); int score = scan.nextInt(); if (score>=60){ System.out.println("及格"); }else{ System.out.println("不及格"); } scan.close(); } }
if多選擇結構
if(布林表示式 1){
//如果布林表示式 1的值為true執行程式碼
}else if(布林表示式 2){
//如果布林表示式 2的值為true執行程式碼
}else if(布林表示式 3){
//如果布林表示式 3的值為true執行程式碼
}else {
//如果以上布林表示式都不為true執行程式碼
}
一旦其中一個 else if 語句檢測為 true,其他的 else if 以及 else 語句都將跳過執行。
package Demo; import java.util.Scanner; //匯入Scanner類 public class Hello { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("請輸入成績:"); int score = scan.nextInt(); if (score == 100) { System.out.println("S級"); } else if (score < 100 && score >= 90) { System.out.println("A級"); } else if (score < 90 && score >= 80) { System.out.println("B級"); } else if (score < 80 && score >= 70) { System.out.println("C級"); } else if (score < 70 && score >= 60) { System.out.println("D級"); } else if (score < 60 && score >= 0) { System.out.println("不及格"); } else { System.out.println("非法操作"); } scan.close(); } }
巢狀的if結構
使用巢狀的 if…else 語句是合法的。也就是說你可以在另一個 if 或者 else if 語句中使用 if 或者 else if 語句。你可以像 if 語句一樣巢狀 else if...else。
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("請輸入一個數字:");
double num = scan.nextDouble();
if (num % 2 == 0) {
if (num % 3 == 0){
System.out.println("你輸入的數字可以被2和3整除");
}else{
System.out.println("你輸入的數字能被2整除,但不能被3整除");
}
}else {
if (num % 3 ==0){
System.out.println("你輸入的數字能被3整除,但不能被2整除");
}else{
System.out.println("你輸入的數字不能被2整除,也不能被3整除");
}
}
scan.close();
}
switch多選擇結構
switch case 語句判斷一個變數與一系列值中某個值是否相等,每個值稱為一個分支。
switch(expression){
case value :
//語句
break; //可選
case value :
//語句
break; //可選
//你可以有任意數量的case語句
default : //可選
//語句
}
switch case 語句有如下規則:
- switch 語句中的變數型別可以是:byte、short、int或者char。從JavaSE 7開始switch支援字串 String型別,同時case標籤必須為字串常量或字面量。
- case語句中的值(即標籤如case 'A'中的'A')的資料型別必須與變數的資料型別相同,而且只能是常量或者字面常量。
- 當變數的值與case語句的值相等時,那麼case語句之後的語句開始執行,直到break語句出現才會跳出switch語句。
- 當遇到break語句時,switch語句終止。程式跳轉到switch語句後面的語句執行。case語句不必須要包含break語句。如果沒有break語句出現,程式會繼續執行下一條case語句,直到出現break語句。這種情況即case穿透。
- switch語句可以包含一個default分支,該分支一般是switch語句的最後一個分支(可以在任何位置,但建議在最後一個)。default在沒有case語句的值和變數值相等的時候執行。default分支不需要break語句。
public class Hello {
public static void main(String[] args) throws Exception{
System.out.println("請輸入你的評級:");
char grade=(char)System.in.read(); //Scanner不方便輸入單個字元,換in.read方法
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;
default:
System.out.println("Unknown");
}
}
JDK7增加了字串表示式
public class Hello {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("請輸入暗號:");
String sign = scan.next();
switch (sign){
case "已婚":
System.out.println("陳睿");
break;
case "648":
System.out.println("氪不改命");
break;
case "臭死了":
System.out.println("114514");
break;
case "黑暗降臨":
System.out.println("MIHOYO");
break;
default:
System.out.println("Unknown");
}
scan.close();
}