# 流程控制
* 順序結構
* 判斷(分支選擇)結構
* 循環結構
## 順序結構
程序是一個自上而下運行的過程。
## 分支選擇結構
Java 中的分支選擇結構有 if 結構、switch 結構
### if 結構
具備三種類型的結構表現形式
* **形式一:**
~~~
if (logic expression) {
statement;
}
~~~
~~~
int age = 20;
if (age > 18) {
String name = "Tom";
System.out.println("我叫" + name + ",已經" + age + "歲了,我成年了!");
}
~~~
* **形式二:**
~~~
if (logic expression) {
statement;
} else {
statement;
}
~~~
~~~
int age = 16;
if (age > 18) {
String name = "Tom";
System.out.println("我叫" + name + ",已經" + age + "歲了,我成年了!");
} else {
System.out.println("我還未成年!");
}
~~~
* **形式三:**
~~~
if (logic expression) {
statement;
} else if (logic expression) {
statement;
} else {
statement;
}
~~~
~~~
if (age >= 0 && age <= 10) {
System.out.println("少年");
} else if (age <= 18) {
System.out.println("青少年");
} else if (age <= 30) {
System.out.println("青年");
} else if (age <= 50) {
System.out.println("中年");
} else {
System.out.println("老年");
}
~~~
### switch 結構
swtich 語句是有控制表達式和多個 case 標簽塊組成。在控制表達式中,只允許出現 byte、short、int、char四種基礎數據類型,在JDK1.7以后,支持 String 類型的控制表達式。
~~~
switch (expression) {
case condition1 : {
statement;
break;
}
case condition2 : {
statement;
break;
}
default : {
statement;
break;
}
}
~~~
~~~
String color = "red";
switch (color) {
case "red": {
System.out.println("紅色");
break;
}
case "blue": {
System.out.println("藍色");
break;
}
case "green": {
System.out.println("綠色");
break;
}
default: {
System.out.println("沒有找到");
break;
}
}
~~~
> 在 case 中要加入 break 關鍵字跳出;
>
> 在實際的開發中,我們一般使用 if - else 結構替代 switch。swtich 結構應用的較少。
## 循環結構
循環語句可以在滿足循環條件的情況下,反復執行某一段代碼。
被重復執行的代碼叫做循環體。
循環語句可能包含的部分有:
* 初始化語句(init\_statement):一條或多條語句,這些語句用于完成一些初始化的工作。
* 循環條件(test\_expression):是一個 boolean 類型的表達式,這個表達式決定是否繼續執行循環體。
* 循環體(body\_statement):如果條件允許,循環體會被反復執行。
* 迭代語句(iteration\_statement):在一次循環體執行結束后,對循環體條件進行求值,通常用于控制循環條件中的變量,使得循環在合適的時候結束。
### while 結構
~~~
(init_statement);
while (test_expression) {
body_statement;
[iteration_statement];
}
~~~
~~~
int sum = 0;
int i = 1;
while (i <= 10) {
sum = sum + i;
i++;
}
System.out.println(sum); // 55
~~~
### do-while 結構
~~~
(init_statement);
do {
body_statement;
[iteration_statement];
} while (test_expression)
~~~
> 無論如何都會執行一次循環體內容
~~~
int i = 1;
int sum = 0;
do {
sum += i++;
// sum = sum + i;
// i = i + 1;
} while (i <= 10);
System.out.println(sum); // 11
~~~
### for 循環
語法:
~~~
for ([init_statement]; test_expression; [iteration_statement]) {
body_statement;
}
~~~
實例
~~~
int sum = 0;
for (int i = 1; i <= 28; i++) {
sum = sum + i;
}
System.out.println(sum);
~~~
> 在實際的開發中,對于已知循環次數的遍歷,一般使用 for 循環。而且 for 循環的應用場景要比 while 循環多。
### 控制循環結構
**break**:在循環體中,使用 break 關鍵字跳出**整個循環**。
~~~
int flag = 6;
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum = sum + i;
if (i == flag) {
break;
}
}
System.out.println(sum); // 21
~~~
**continue**:在循環體中,使用 continue 跳出**本次循環**,循環還會繼續執行。
~~~
int sum = 0;
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue;
}
sum = sum + i;
}
System.out.println(sum); // 25
~~~
**練習-閏年**
判斷某一年是否為閏年
通過Scanner 輸入一個年份,然后判斷概念是否是閏年
閏年判斷標準(滿足任何一個)
1. 如果能夠被4整除,但是不能被100整除
2. 能夠被400整除
**作業**
1. 計算100之內,所有奇數之和,所有偶數之和
2. 尋找所有的水仙花數
水仙花數定義:
a、一定是三位數
b、每一位的立方,加起來正好是這個數的本身,比如153=1*1*1 + 5*5*5 + 3*3*3;
- Java業余班教學管理
- JAVA基礎
- JAVA開發學習準備
- JAVA介紹
- 開發JAVA的準備
- JAVA的運行原理
- JDK配置
- 我的第一個JAVA程序
- 類與對象
- 基礎語言要素
- 數據類型
- Eclipse的安裝與使用
- 變量
- 直接量
- 運算符
- 流程控制
- 數組結構
- 面向對象
- 隱藏與封裝
- 深入構造器
- 類的繼承
- 多態
- 包裝類
- final修飾符
- 抽象類
- 接口
- 設計模式
- 單例模式
- 工廠模式
- 集合框架
- 集合排序
- 常用類學習
- 異常處理
- Java基礎綜合練習
- JAVA高級
- 泛型
- 多線程
- 線程的創建
- 線程的生命周期
- 線程同步
- 線程通信
- 輸入輸出流(I/O編程)
- File文件操作
- 字節流與字符流
- 數據庫
- 數據庫介紹
- 數據庫安裝
- SQL
- 表的基本操作
- 修改數據語句
- 數據檢索操作
- 多表數據操作
- 表結構設計
- 綜合應用
- JavaWeb