java基礎筆記 -- 6.選擇結構-if語句-switch語句
一、流程控制
1.1 概述:
在一個程式執行的過程中,各條語句的執行順序對程式的結果是有直接影響的。也就是說,程式的流程對執行結果
有直接的影響。所以,我們必須清楚每條語句的執行流程。而且,很多時候我們要通過控制語句的執行順序來實現
我們要完成的功能。
1.2 順序結構
public static void main(String[] args){
//順序執行,根據編寫的順序,從上到下執行
System.out.println(1);
System.out.println(2);
System.out.println(3);
}
二、判斷語句
2.1 判斷語句 -- if
if (關係表示式) {
語句體;
}
執行流程:
* 首先判斷關係表示式看其結果是true還是false.
* 如果是true就執行語句體
* 如果是false就不執行語句體
public static void main(String[] args) {
System.out.println("開始");
// 定義兩個變數
int a = 10;
int b = 20;
// 變數使用if判斷
if (a == b) {
System.out.println("a等於b");
}
int c = 10;
if (a == c) {
System.out.println("a等於c");
}
System.out.println("結束");
}
2.2 判斷語句 if...else
if(關係表示式) {
語句體A;
}else {
語句體B;
}
執行流程:
* 首先判斷關係表示式看其結果true還是false
* 如果是true就執行語句體A
* 如果是false就執行語句體B
public static void main(String[] args) {
// 判斷給定的資料是奇數還是偶數
// 定義變數
int a = 1;
if (a % 2 == 0){
System.out.println("a是偶數");
} else {
System.out.println("a是奇數");
}
System.out.println("結束");
}
2.3 判斷語句 if...else if...else
if語句第三種格式: if...else if...else
if (判斷條件1) {
執行語句1;
} else if (判斷條件2) {
執行語句2;
}
...
}else if (判斷條件n) {
執行語句n;
} else {
執行語句n+1;
}
執行流程
* 首先判斷關係表示式1看其結果是true還是false
* 如果是true就執行語句體1
* 如果是false就繼續判斷關係表示式2看其結果是true還是false.
* 如果是true就執行語句體2
* 如果是false就繼續判斷關係表示式...看其結果是true還是false
* ...
* 如果沒有任何關係表示式為true,就執行語句體n+1
練習:
指定考試成績,判斷學生等級
90-100 優秀
80-89 好
70-79 良
60-69 及格
60 以下 不及格
public static void main(String[] args) {
int score = 120;
if (score >= 90 && score <= 100) {
System.out.println("優秀");
} else if (score >= 80 && score < 90) {
System.out.println("好");
} else if (score >= 70 && score < 80) {
System.out.println("良");
} else if (score >= 60 && score < 70) {
System.out.println("及格");
} else if (score >= 0 && score < 60) {
System.out.println("不及格");
} else { // 單獨處理邊界之外的不合理情況
System.out.println("資料錯誤");
}
}
2.4 if語句和三元運算子的互換
在某些簡單的應用中,if語句是可以和三元運算子互換使用的。
public static void main(String[] args) {
int a = 10;
int b = 20;
//定義變數,儲存a和b的較大值
int c;
if(a > b) {
c = a;
} else {
c = b;
}
//可以上述功能改寫為三元運算子形式
c = a > b ? a:b;
}
三、選擇語句
3.1 選擇語句--switch
* switch語句格式:
switch(表示式) {
case 常量值:
語句體1;
break;
case 常量值:
語句體2;
break;
...
default:
語句體n+1;
break;
}
執行流程:
* 首先計算出表示式的值
* 其次,和case依次比較,一旦有對應的值,就會執行相應的語句,在執行的過程中,遇到break就會結束。
* 最後,如果所有的case都和表示式的值不匹配,就會執行default語句體部分,然後程式結束掉。
public static void main(String[] args) {
// 定義變數,判斷是星期幾
int weekday = 6;
// switch語句實現選擇
switch (weekday) {
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;
}
}
switch 語句中,表示式的資料型別,可以是byte,short,int,char,enum(列舉),JDK7後可以接收字串。
3.2 case的穿透性
在switch語句中,如果case的後面不寫break,將出現空透現象,也就是不會在判斷下一個case的值,直接向後執行,直到遇到break,或者整體switch結束。
public static void main(String[] args) {
int i = 5;
switch (i){
case 0:
System.out.println("執行case0");
break;
case 5:
System.out.println("執行case5");
case 10:
System.out.println("執行case10");
default:
System.out.println("執行default");
}
上述程式中,執行case5後,由於沒有break語句,程式會一直向後走,不會在判斷case,也不會理會break,直接
執行完整體switch。
由於case存在穿透性,因此初學者在編寫switch語句時,必須要寫上break。
相關文章
- JAVA基礎--Switch case語句Java
- 《Java從入門到失業》第三章:基礎語法及基本程式結構(3.8):流程控制(選擇語句、if-else語句、switch語句)Java
- java學習基礎篇筆記4-----switch-case語句+Scanner類Java筆記
- javaday02-4 選擇結構if語句Java
- java基礎-衛語句Java
- Python零基礎學習筆記(十八)——break語句和continue語句Python筆記
- Java基礎 迴圈語句 for while do.....while語句JavaWhile
- java switch語句是什麼?Java
- java中的switch case語句Java
- java中switch語句注意--breakJava
- Java 判斷語句 - if…else/switchJava
- JavaScript switch語句JavaScript
- JavaScript switch 語句JavaScript
- Java基礎 - 流程控制語句Java
- 理解Java中的switch分支語句Java
- python基礎語法—語句Python
- Python基礎-if,for語句Python
- MySQL基礎語句MySql
- switch語句逆向分析
- C#快速入門教程(13)—— switch語句結構C#
- 《Java從入門到失業》第三章:基礎語法及基本程式結構(3.8):流程控制(迴圈語句、while語句、for語句)JavaWhile
- SQL語言基礎(SELECT語句)SQL
- 開心檔之Java switch case 語句Java
- JavaScript中的switch語句JavaScript
- [譯] part 10: switch 語句
- JavaScript 流程控制語句詳解:if語句、switch語句、while迴圈、for迴圈等JavaScriptWhile
- Go快速入門 03 | 控制結構:if、for、switch 邏輯語句Go
- 2.語句結構
- Python學習筆記3(條件語句+迴圈語句)Python筆記
- MySQL基礎之DML語句MySql
- 【Python基礎】for迴圈語句Python
- 第 7 小節 if、switch 語句
- Python學習筆記 - if語句Python筆記
- SQLite語句學習筆記SQLite筆記
- ### 流程控制語句結構
- 流程控制語句結構
- if 多分支語句和 switch 多分支語句的異同之處
- flask之控制語句 if 語句與for語句Flask