流程控制語句—順序、選擇、循環
1. 概述
在一個程序執行的過程中,各條語句的執行順序對程序的結果是有直接影響的。也就是說程序的流程對運行結果有直接的影響。在清楚每條語句的執行流程的前提下,才能通過控制語句的執行順序來實現我們要完成的功能。
2. 順序控制語句
2.1概述
是程序中最簡單的流程控制,按照代碼執行的先後順序,依次執行,程序中的大多數代碼都是這樣執行的。
2.2順序結構流程圖
![流程控制語句—順序、選擇、循環](http://p2.ttnews.xyz/loading.gif)
2.3代碼示例
public class OrderDemo01 {
public static void main(String[] args) {
System.out.println("開始");
System.out.println("程序1");
System.out.println("程序2");
System.out.println("結束");
}
}
3. 選擇結構
3.1概述
l 選擇結構也被稱為分支結構。選擇結構有特定的語法規則,代碼要執行具體的邏輯運算進行判斷,邏輯運算的結果有兩個,所以產生選擇,按照不同的選擇執行不同的代碼。
l Java語言提供了兩種選擇結構語句
if語句和switch語句。
3.2 if語句
3.2.1 if語句的第一種格式,適合做一種情況的判斷。
l 代碼格式:
if(布爾表達式) {
語句體
}
l 程序執行流程圖:
![流程控制語句—順序、選擇、循環](http://p2.ttnews.xyz/loading.gif)
l 代碼示例:
public class OrderDemo02 {
public static void main(String[] args) {
int a = 1;
int b = 2;
if (a == b){
System.out.println("a等於b");
}
System.out.println("a不等於b");
}
}
3.2.2 if語句的第二種格式,適合做兩種情況的判斷。
l 代碼格式:
if(關係表達式) {
語句體1;
} else {
語句體2;
}
l 程序執行流程圖:
l 代碼示例:
public class OrderDemo03 {
public static void main(String[] args) {
int a = 1;
int b = 2;
if (a == b){
System.out.println("a等於b");
}else{
System.out.println("a不等於b");
}
}
}
3.2.3 if語句的第三種格式,適合做多種情況的判斷。
l 代碼格式:
if (判斷條件1) {
執行語句1
} else if (判斷條件2) {
執行語句2
}
...
else if (判斷條件n) {
執行語句n
} else {
執行語句n+1
}
l 執行流程圖:
l 代碼示例:
public class OrderDemo04 {
public static void main(String[] args) {
int a = 1;
if (a == 1){
System.out.println("a等於1");
}else if(a != 1){
System.out.println("a不等於1");
}else{
System.out.println("以上條件都不滿足");
}
}
}
3.3 switch語句
l 代碼格式:
switch(表達式) {
case 目標值1:
語句體1;
break;
case 目標值2:
語句體2;
break;
…
default:
語句體n+1;
break;
}
l 代碼格式說明:
u case後面跟的是要和表達式進行比較的值。
u Break用來結束switch語句。
u default語句表示所有情況都不匹配的時候,就執行該處的內容。
l 代碼執行流程圖:
l 代碼示例:
public class OrderDemo05 {
public static void main(String[] args) {
switch (10){
case 8:
System.out.println(8);
break;
case 10:
System.out.println(10);
break;
default:
System.out.println("default");
break;
}
}
}
3.4 選擇結構的總結
l Switch結構能實現的,if都能實現,但是if能實現的,switch不一定能實現。
l 如果遇到對常量的判斷,為了使代碼更簡潔,優先使用switch選擇。
l If選擇,可以用來做布爾值的判斷、常量的判斷和範圍的判斷,switch只能用來對常量進行判斷。
4. 循環結構
4.1概述
循環語句可以在滿足循環條件的情況下,反覆執行某一段代碼,這段被重複執行的代碼被稱為循環體語句,當反覆執行這個循環體時,需要在合適的時候把循環判斷條件修改為false,從而結束循環,否則循環將一直執行下去,形成死循環。
4.2循環體的組成部分的介紹
l 初始化表達式:
一條或者多條語句,這些語句完成一些初始化操作。
l 布爾表達式:
這是一個boolean 表達式,這個表達式能決定是否執行循環體。
l 循環體:
這個部分是循環體語句,也就是我們要多次做的事情。
l 步進表達式:
這個部分在一次循環體結束後,下一次循環判斷條件執行前執行。通過用於控制循環條件中的變量,使得循環在合適的時候結束。
4.3 for循環結構
l 代碼格式:
for(初始化表達式;布爾表達式;步進表達式){
循環體
}
l 代碼執行流程圖:
l 代碼示例:
public class ForDemo01 {
public static void main(String[] args) {
for (int i = 0;i < 10;i++){
System.out.println("i的數值是"+i);
}
}
}
4.4 while循環結構
l 代碼格式:
u 基本代碼格式:
while(布爾表達式) {
循環體語句;
}
u 擴展代碼格式:
擴展格式
初始化表達式①
while(布爾表達式②){
循環體③
步進表達式④
}
l 程序執行流程圖:
l 代碼示例:
public class WhileDemo01 {
public static void main(String[] args) {
int i = 0;
while (i <10){
System.out.println("i的數值是"+i);
i++;
}
}
}
4.5 do while循環結構
l 代碼格式:
u 基本格式:
do {
循環體語句;
}while(布爾表達式);
u 擴展格式:
初始化表達式①
do{
循環體③
步進表達式④
}while(布爾表達式②);
l 程序執行示意圖:
l 代碼示例:
public class DowhileDemo01 {
public static void main(String[] args) {
int x=1;
do {
System.out.println("x的數值是"+x);
x++;
}while(x<=10);
}
}
4.6 循環結構的總結
l do…while循環至少會執行一次循環體。
l for循環和while循環只有在條件成立的時候才會去執行循環體。
l 控制條件語句所控制的那個變量,在for循環結束後,就不能再被訪問到了,而while循環結束還可以繼續使用,如果你想繼續使用,就用while,否則推薦使用for。原因是for循環結束,該變量就從內存中消失,能夠提高內存的使用效率。
l 在選擇循環結構時,推薦的選擇順序是for -- while -- do..while,一般不建議使用do..while循環結構。
閱讀更多 文瀧Vincent 的文章