循環(huán)語句是什么
循環(huán)語句就是重復執(zhí)行指定語句。js有5種循環(huán)語句:
- while
- Do / while
- for
- For / of
- For / in
最常見的用途就是迭代數(shù)組。
計數(shù)器變量
循環(huán)就是重復做。但是程序是如何實現(xiàn)重復做的呢?它的實現(xiàn)原理是什么?
先看一個例子
for ( let count = 0; count < 5; count++){
console.log(count)
}
-
let count = 0初始化變量 => 循環(huán)的起點 -
count < 5檢測變量 => 循環(huán)的終點,控制是否執(zhí)行循環(huán)體。 -
count++更新變量 => 控制循環(huán)迭代
這個變量被稱為“計數(shù)器變量”或"循環(huán)變量"。大多數(shù)循環(huán)都有某種形式的計數(shù)器變量。記?。?/p>
對循環(huán)變量的三個關鍵操作
初始化
檢測
更新
計數(shù)器變量在:
循環(huán)開始前:計數(shù)器變量會被初始化
循環(huán)迭代前:會測試計數(shù)器變量的值
循環(huán)結束時:更新計數(shù)器變量
while循環(huán)
定義
while循環(huán)是先測試循環(huán)表達式的循環(huán)。(while 語句創(chuàng)建一個循環(huán),測試循環(huán)表達式
的結果為真時重復執(zhí)行語句)
語法
initialize
while ( expression ){ //循環(huán)表達式
statement //循環(huán)體
increment //必須是由副作用的表達式,如賦值或++、--
}
- while: 引入循環(huán)表達式||標記循環(huán)結束
- Expression : 循環(huán)表達式
- 如果是假值則解析器會跳過循環(huán)體,這意味著循環(huán)體可能一次都不會執(zhí)行。
- 如果是真值,則解析器會執(zhí)行語句,然后再次求值表達式。
- statement:循環(huán)體
示例
let n = 0;
while (n < 3) {
n++;
}
console.log(n);// expected output: 3
注意事項
- while循環(huán)只會重復執(zhí)行表達式后面的一條語句
let n = 10
while ( --n > 0)
console.log('hello' + n)
console.log('hi')
- 求值表達式必須要計算出fasle,否則while(true)會創(chuàng)造一個死循環(huán)
let count = 0 //①變量count從0開始
while ( count < 10 ){ //②表達式求值為true就執(zhí)行循環(huán)體④再次求值表達式
console.log( count )
count++ //③每運行一次循環(huán)體count就增一次
}
- 常見的計數(shù)器變量的名字有:
count、i、j、k
do / while
do / while 循環(huán)后測試循環(huán)表達式的循環(huán)。這意味著循環(huán)體至少會執(zhí)行一次。
語法
do
statement
while ( expression );
do {
statement
} while ( expression );
- do: 標記循環(huán)開始
- statement: 循環(huán)體
- while: 標記循環(huán)結束||引入循環(huán)表達式
- expression: 循環(huán)表達式
示例
let result = '';
let i = 0;
do {
i = i + 1;
result = result + i;
} while (i < 5);
console.log(result);
// expected result: "12345"
for循環(huán)
語法
for ( 變量聲明; 條件表達式; 賦值表達式){
//循環(huán)體
}
- 變量聲明:在循環(huán)開始前設置的普通變量,通常是一個數(shù),用于設置循環(huán)的起點。
- 條件表達式:控制是否執(zhí)行循環(huán)體,也就是指定循環(huán)的終點。
- 賦值表達式:每次循環(huán)體執(zhí)行后執(zhí)行的代碼,用于更新計數(shù)器變量的值。(必須是由副作用的表達式)
示例:
for ( let i = 0; i < 5; i++){
console.log(i)
}
-
let i = 0初始化計數(shù)器變量,在循環(huán)開始前執(zhí)行,且只執(zhí)行一次。 -
i < 5檢測計數(shù)器變量,求值結果為真則執(zhí)行循環(huán)體,否則跳過循環(huán)體。 -
i++更新計數(shù)器變量 - 重復步驟2
作業(yè)
-
寫一個水果超市的價格查詢程序: 蘋果 香蕉 火龍果 橙子 榴蓮等
輸入一個“蘋果” 返回=> 3.6 / 斤
使用prompt()設置行數(shù)、列數(shù)、和符號輸出下面的圖形
*****
*****
*****
*****
*****
-
向控制臺輸出一個口字形狀的星號
***** * * * * * * ***** -
向控制臺輸出下面的圖形
* ** *** **** ***** -
向控制臺輸出下面的圖形
***** **** *** ** * 向控制臺輸出下面的圖形
*
**
***
****
*****
- 向控制臺輸出下面的圖形
*****
****
***
**
*
- 向控制臺輸出下面的圖形
*
**
* *
* *
* *
******
- 向控制臺輸出下面的圖形
*
***
*****
*******
*********
- 向控制臺輸出下面的圖形
*********
*******
*****
***
*
- 向控制臺輸出下面的圖形
*
* *
* *
* *
*********
- 向控制臺輸出下面的圖形
*
***
*****
*******
*********
*******
*****
***
*
- 向控制臺輸出下面的圖形
*
* *
* *
* *
* *
* *
* *
* *
*
- 向控制臺輸出下面的圖形
*********
*******
*****
***
*
***
*****
*******
*********
- 向控制臺輸出下面的圖形
*
**
***
****
*****
****
***
**
*
- 向控制臺輸出下面的圖形
*
**
***
****
*****
****
***
**
*
- 向控制臺輸出下面的圖形
*** ***
***** *****
***********
*********
*******
*****
***
*