3.1-全棧Java筆記:Java控制語句 (上)選擇結構篇
我們需要開始學習控制語句,控制語句分為兩類:選擇和迴圈。
“選擇結構”代表“如果…,則…”的邏輯。
比如,如果女朋友來電,則迅速接電話;如果看到紅燈,則停車;
“迴圈結構”代表“如果…,則再繼續…”的邏輯。
比如,如果沒打通女朋友電話,則再繼續打一次;如果沒找到喜歡的人,則再繼續找。
很神奇的是,“選擇和迴圈”就能表示所有的事情!
不信,你可以試試拆分你遇到的各種事情。
實際上,任何軟體和程式,小到一個練習,大到一個作業系統,
本質上都是由“變數、選擇語句、迴圈語句”組成。
這兩種基本邏輯結構是相互支撐的,它們共同構成了演算法的基本結構,無論怎樣複雜的邏輯結構,都可以通過它們來表達。上述兩種結構組成的程式可以解決全部的問題,所以任何一種高階語言都具備上述三種結構。
因此,本章是大家真正跨入程式設計界的“門檻”,是成為“程式猿”的“門票”。
選擇結構
if單選擇結構
語法結構:
if(布林表示式){
語句
}
if語句對條件表示式進行一次測試,若測試為真,則執行{}中的語句,否則跳過該語句。

圖1 if結構流程圖
【示例1】if選擇結構
doublei = 6 * Math.random();
doublej = 6 * Math.random();
doublek = 6 * Math.random();
intcount = (int) (i + j + k);
if(count > 15) {
System.out.println("今天手氣不錯");
}
if(count >= 10 && count <= 15) { //錯誤寫法:10
System.out.println("今天手氣很一般");
}
if(count < 10) {
System.out.println("今天手氣不怎麼樣");
}
System.out.println("得了" + count + "分");

示例1執行效果圖
Math類的使用
java.lang包中的Math類提供了一些用於數學計算的方法。
Math.random()該方法用於產生一個0到1這間的double型別的隨機數。
int i = (int) (6 * Math.random()); //產生:[0,5]之間的隨機整數
新手雷區:
如果if語句不寫{},則只能作用於後面的第一個語句。強烈建議,任何時候都跟上{},即使裡面只有一句話!
if-else雙選擇結構
語法結構:
if(布林表示式){
語句1
}else{
語句2
}
當條件表示式為真時,執行語句塊1,否則,執行語句塊2。也就是else部分。

圖2 if-else結構流程圖
【示例2】if-else結構
double r = 4 * Math.random();
double area = Math.PI* Math.pow(r, 2);
double circle = 2 * Math.PI* r;
System.out.println("半徑為:" + r);
System.out.println("面積為:" + area);
System.out.println("周長為:" + circle);
if(area >= circle) {
System.out.println("面積大於等於周長");
} else {
System.out.println("周長大於面積");
}

示例2執行效果圖
條件運算子有時候可用於代替if/else,如示例3與示例4所示。
【示例3】使用if-else
inta=2;
intb=3;
System.out.println((a
【示例4】使用條件運算子
inta=2;
intb=3;
if(a
System.out.println(a);
}else{
System.out.println(b);
}
if-else if-else多選擇結構
語法結構:
if(布林表示式1) {
語句塊1;
} else if(布林表示式2) {
語句塊2;
}………
else if(布林表示式n){
語句塊n;
} else {
語句塊n+1;
}

圖3 if-else if-else多選擇流程圖
【示例5】if-else if-else多選擇結構
public class Welcome{
public static void main(String[] args) {
int age = (int) (100 * Math.random());
System.out.print("年齡是" + age + ",屬於");
if (age < 15) {
System.out.println("兒童,喜歡玩!");
} else if (age < 25) {
System.out.println("青年,要學習!");
} else if (age < 45) {
System.out.println("中年,要工作!");
} else if (age < 65) {
System.out.println("中老年,要補鈣!");
} else if (age < 85) {
System.out.println("老年,多運動!");
} else {
System.out.println("老壽星,古來稀!");
}
}
};


示例3-5執行效果圖
示例3-5執行效果圖
switch多選擇結構
語法結構:
switch (表示式) {
case值1:
語句序列;
[break];
case值2:
語句序列;
[break];
… … … … …
[default:
預設語句;]
}

圖4switch多選擇流程圖
根據表示式值的不同執行許多不同的操作。switch語句中case標籤在JDK1.5之前必須是整數或者列舉,不能是字串,在JDK1.7之後允許使用字串(String)。
switch語句會根據表示式的值從相匹配的case標籤處開始執行,一直執行到break語句處或者是switch語句的末尾。與任一case值不匹配,則進入default語句(如果存在default語句的情況)。
【示例6】switch結構
public class VowelsAndConsonants {
public static void main(String[] args) {
char c = 'a';
int rand =(int) (26*Math.random());
char c2 = (char)(c+rand);
System.out.print(c2 + ": ");
switch (c2) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
System.out.println("母音"); break;
case 'y':
case 'w':
System.out.println("半母音"); break;
default:
System.out.println("子音");
}
}
}


示例6執行效果圖
示例6執行效果圖
「全棧Java筆記」是一部能幫大家從零到一成長為全棧Java工程師系列筆記。筆者江湖人稱 Mr. G,10年Java研發經驗,曾在神州數碼、航天院某所研發中心從事軟體設計及研發工作,從小白逐漸做到工程師、高階工程師、架構師。精通Java平臺軟體開發,精通JAVAEE,熟悉各種流行開發框架。
筆記包含從淺入深的六大部分:
A-Java入門階段
B-資料庫從入門到精通
C-手刃移動前端和Web前端
D-J2EE從瞭解到實戰
E-Java高階框架精解
F-Linux和Hadoop
F-Linux和Hadoop
相關文章
- java基礎筆記 -- 6.選擇結構-if語句-switch語句Java筆記
- Java 控制語句Java
- javaday02-4 選擇結構if語句Java
- 《Java從入門到失業》第三章:基礎語法及基本程式結構(3.8):流程控制(選擇語句、if-else語句、switch語句)Java
- Java™ 教程(控制流語句)Java
- Java流程控制語句Java
- 【Java基礎】03選擇結構Java
- Java流程控制:使用者互動Scanner、選擇結構Java
- Python學習筆記-基礎篇(10)-選擇結構與迴圈結構Python筆記
- ### 流程控制語句結構
- 流程控制語句結構
- java學習基礎篇筆記4-----switch-case語句+Scanner類Java筆記
- Java入門系列-08-選擇結構Java
- Java基礎 - 流程控制語句Java
- 資料結構筆記——棧資料結構筆記
- C語言-選擇結構C語言
- Java版-資料結構-棧Java資料結構
- Java基礎篇(03):流程控制語句,和演算法應用Java演算法
- Kubernetes全棧架構師(資源排程上)--學習筆記全棧架構筆記
- 《Java從入門到失業》第三章:基礎語法及基本程式結構(3.8):流程控制(迴圈語句、while語句、for語句)JavaWhile
- 資料結構學習筆記-簡單選擇排序資料結構筆記排序
- 資料結構學習筆記--棧資料結構筆記
- JVM讀書筆記之java記憶體結構JVM筆記Java記憶體
- Java - 6 語句Java
- Java棧與棧上分配Java
- 2-4 Java流程控制——迴圈語句Java
- CSS 小結筆記之選擇器CSS筆記
- java全棧工程師:從java後端到全棧,高階電商全棧系統大課Java全棧工程師後端
- 選擇結構
- 資料結構筆記-棧的應用資料結構筆記
- Java 選擇排序Java排序
- Java基礎 語法筆記Java筆記
- Java基礎語法筆記Java筆記
- Java 數學運算與條件語句全解析Java
- Java和Go語言二選一,選擇哪門語言好?JavaGo
- shell指令碼程式設計之選擇控制結構指令碼程式設計
- 【JAVA】筆記(12)---集合(1)-概述篇Java筆記
- Go快速入門 03 | 控制結構:if、for、switch 邏輯語句Go
- Java流程控制02:順序結構Java