天天看點

JavaScript基礎知識③(流程控制 -- 順序、分支、循環)

文章目錄

  • ​​JavaScript 流程控制-分支​​
  • ​​流程控制​​
  • ​​順序流程控制​​
  • ​​分支流程控制 if 語句​​
  • ​​分支結構​​
  • ​​if語句​​
  • ​​if else語句(雙分支語句)​​
  • ​​if else if 語句(多分支語句)​​
  • ​​三元表達式​​
  • ​​分支流程控制 switch 語句​​
  • ​​文法結構​​
  • ​​switch 語句和 if else if 語句的差別​​
  • ​​JavaScript 流程控制-循環​​
  • ​​循環​​
  • ​​for 循環​​
  • ​​文法結構​​
  • ​​雙重 for 循環文法​​
  • ​​雙重 for 循環概述​​
  • ​​雙重 for 循環文法​​
  • ​​while 循環​​
  • ​​do while 循環​​
  • ​​continue break​​
  • ​​continue 關鍵字​​
  • ​​break 關鍵字​​

JavaScript 流程控制-分支

流程控制

在一個程式執行的過程中,各條代碼的執行順序對程式的結果是有直接影響的。很多時候我們要通過控制代碼的執行順序來實作我們要完成的功能。

簡單了解: 流程控制就是來控制我們的代碼按照什麼結構順序來執行

流程控制主要有三種結構,分别是​

​順序結構​

​​、​

​分支結構​

​​和​

​循環結構​

​,這三種結構代表三種代碼執行的順序。

JavaScript基礎知識③(流程控制 -- 順序、分支、循環)

順序流程控制

順序結構是程式中最簡單、最基本的流程控制,它沒有特定的文法結構,程式會按照代碼的先後順序,依次執行,程式中大多數的代碼都是這樣執行的。

JavaScript基礎知識③(流程控制 -- 順序、分支、循環)

分支流程控制 if 語句

分支結構

由上到下執行代碼的過程中,根據不同的條件,執行不同的路徑代碼(執行代碼多選一的過程),進而得到不同的結果

JavaScript基礎知識③(流程控制 -- 順序、分支、循環)

JS 語言提供了兩種分支結構語句:

  • if 語句
  • switch 語句

if語句

①文法結構

// 條件成立執行代碼,否則什麼也不做
if (條件表達式) {
 // 條件成立執行的代碼語句
}      

語句可以了解為一個行為,循環語句和分支語句就是典型的語句。一個程式由很多個語句組成,一般情況下,會分割成一個一個的語句。

②執行流程

JavaScript基礎知識③(流程控制 -- 順序、分支、循環)

if else語句(雙分支語句)

①文法結構

// 條件成立 執行 if 裡面代碼,否則執行else 裡面的代碼
if (條件表達式) {
 // [如果] 條件成立執行的代碼
} else {
 // [否則] 執行的代碼
}      

②執行流程

JavaScript基礎知識③(流程控制 -- 順序、分支、循環)

if else if 語句(多分支語句)

①文法結構

// 适合于檢查多重條件。
if (條件表達式1) {
 語句1;
} else if (條件表達式2) {
 語句2;
} else if (條件表達式3) {
 語句3;
 ....
} else {
 // 上述條件都不成立執行此處代碼
}      

②執行流程

JavaScript基礎知識③(流程控制 -- 順序、分支、循環)

三元表達式

三元表達式也能做一些簡單的條件選擇。 有三元運算符組成的式子稱為三元表達式。

①文法結構

表達式1 ? 表達式2 : 表達式3;      

②執行思路

如果表達式1為 true ,則傳回表達式2的值,如果表達式1為 false,則傳回表達式3的值

簡單了解: 就類似于 if else (雙分支) 的簡寫

分支流程控制 switch 語句

文法結構

switch 語句也是多分支語句,它用于基于不同的條件來執行不同的代碼。當要針對變量設定一系列的​

​特定值的選項​

​​時,就可以使用 switch。

文法結構:

switch( 表達式 ){ 
 case value1:
 // 表達式 等于 value1 時要執行的代碼
 break;
 case value2:
 // 表達式 等于 value2 時要執行的代碼
 break;
 default:
 // 表達式 不等于任何一個 value 時要執行的代碼
}      
  • switch :開關 轉換 , case :小例子 選項
  • 關鍵字 switch 後面括号内可以是表達式或值, 通常是一個變量
  • 關鍵字 case , 後跟一個選項的表達式或值,後面跟一個冒号
  • switch 表達式的值會與結構中的 case 的值做比較
  • 如果存在比對全等(===) ,則與該 case 關聯的代碼塊會被執行,并在遇到 break 時停止,整個 switch 語句代碼 執行結束
  • 如果所有的 case 的值都和表達式的值不比對,則執行 default 裡的代碼
注意: 執行case 裡面的語句時,如果沒有break,則繼續執行下一個case裡面的語句。

switch 語句和 if else if 語句的差別

① 一般情況下,它們兩個語句可以互相替換

② switch…case 語句通常處理 case為比較确定值的情況, 而 if…else…語句更加靈活,常用于範圍判斷(大于、等于某個範圍)

③ switch 語句進行條件判斷後直接執行到程式的條件語句,效率更高。而if…else 語句有幾種條件,就得判斷多少次。

④ 當分支比較少時,if… else語句的執行效率比 switch語句高。

⑤ 當分支比較多時,switch語句的執行效率比較高,而且結構更清晰。

JavaScript 流程控制-循環

循環

循環目的:在實際問題中,有許多具有規律性的重複操作,是以在程式中要完成這類操作就需要重複執行某些語句

在Js 中,主要有三種類型的循環語句:

  • for 循環
  • while 循環
  • do…while 循環

for 循環

在程式中,一組被重複執行的語句被稱之為​

​循環體​

​​,能否繼續重複執行,取決于循環的​

​終止條件​

​​。由循環體及循環的終止條件組成的語句,被稱之為​

​循環語句​

文法結構

for 循環主要用于把某些代碼循環若幹次,通常跟計數有關系。其文法結構如下:

for(初始化變量; 條件表達式; 操作表達式 ){
 //循環體
}      
  • 初始化變量:通常被用于初始化一個計數器,該表達式可以使用 var 關鍵字聲明新的變量,這個變量幫我們來記錄次數。
  • 條件表達式:用于确定每一次循環是否能被執行。如果結果是 true 就繼續循環,否則
  • 操作表達式:每次循環的最後都要執行的表達式。通常被用于更新或者遞增計數器變量。當然,遞減變量也是可以的。

執行過程:

  1. 初始化變量,初始化操作在整個 for 循環隻會執行一次。
  2. 執行條件表達式,如果為true,則執行循環體語句,否則退出循環,循環結束。
  3. 執行操作表達式,此時第一輪結束。
  4. 第二輪開始,直接去執行條件表達式(不再初始化變量),如果為 true ,則去執行循環體語句,否則退出循環。
  5. 繼續執行操作表達式,第二輪結束。
  6. 後續跟第二輪一緻,直至條件表達式為假,結束整個 for 循環

雙重 for 循環文法

雙重 for 循環概述

很多情況下,單層 for 循環并不能滿足我們的需求,比如我們要列印一個 5 行 5 列的圖形、列印一個倒直角三角形等,此時就可以通過循環嵌套來實作。

​循環嵌套​

​​是指在一個循環語句中再定義一個循環語句的文法結構,例如在for循環語句中,可以再嵌套一個for 循環,這樣的 for 循環語句我們稱之為​

​雙重for循環​

雙重 for 循環文法

for (外循環的初始; 外循環的條件; 外循環的操作表達式) {
  for (内循環的初始; 内循環的條件; 内循環的操作表達式) { 
  需執行的代碼;
  }
}      
  • 内層循環可以看做外層循環的語句
  • 内層循環執行的順序也要遵循 for 循環的執行順序
  • 外層循環執行一次,内層循環要執行全部次數

while 循環

while 語句可以在條件表達式為真的前提下,循環執行指定的一段代碼,直到表達式不為真時結束循環

while語句的文法結構如下:

while (條件表達式) {
 // 循環體代碼
}      

執行思路:

① 先執行條件表達式,如果結果為 true,則執行循環體代碼;如果為 false,則退出循環,執行後面代碼

② 執行循環體代碼

③ 循環體代碼執行完畢後,程式會繼續判斷執行條件表達式,如條件仍為true,則會繼續執行循環體,直到循環條件為 false 時,整個循環過程才會結束

注意:

  • 使用 while 循環時一定要注意,它必須要有退出條件,否則會成為死循環
  • while 循環和 for 循環的不同之處在于 while 循環可以做較為複雜的條件判斷,比如判斷使用者名和密碼

do while 循環

do… while 語句其實是 while 語句的一個變體。該循環會先執行一次代碼塊,然後對條件表達式進行判斷,如果條件為真,就會重複執行循環體,否則退出循環。

do… while 語句的文法結構如下:

do {
 // 循環體代碼 - 條件表達式為 true 時重複執行循環體代碼
} while(條件表達式);      

執行思路:

① 先執行一次循環體代碼

② 再執行條件表達式,如果結果為 true,則繼續執行循環體代碼,如果為 false,則退出循環,繼續執行後面代碼

注意:先再執行循環體,再判斷,我們會發現 do…while 循環語句至少會執行一次循環體代碼

continue break

continue 關鍵字

break 關鍵字

繼續閱讀