先做再說:do...while...
先來個無窮迴圈吧~~~
var i =1
do {
console.log(i)
i++
}while(true)
console.log('i=',i)
記得按Ctrl-C
跳出就好
所以記得設條件,在 while 設條件或 do 裡面設條件都可以
var i =1
do {
console.log(i)
i++
}while(i <= 10)
console.log('i=',i)
var i =1
do {
console.log(i)
i++
if(i>10){
break
}
}while(true)
console.log('i=',i)
continue 用法
當你使用沒加標籤的
continue
時,他會終止這一次的最內層的 while、do-while、for 語法的反覆過程,並繼續執行下一次的反覆過程。與break
語法相較之下,continue
不會終止整個循環的執行。在 while 循環中,他會跳回條件處。在 for 循環中,他會跳回遞增表達式
var i =1
do {
console.log(i)
i++
if(i%2 === 1){
continue
}
console.log(i,'偶數')
}while(i <= 10)
console.log('i=',i)
// 當程式執行到continue,
// 跳出迴圈進到 while(i <= 10) 做判斷
var i =1
do {
console.log(i)
i++
if(i <= 20){
continue
}
console.log(i,'偶數')
}while(i <= 10)
console.log('i=',i)
// 程式永遠不會執行到 console.log(i,'偶數') 這一行
// 因為不斷 continue 跳出,直到迴圈結束
while 迴圈
先判斷再 do
var i =1
while(i <= 10){
console.log(i)
i++
}
也可以直接把 i++ 寫在 console.log 裡面
先印出 i 再 ++
var i =1
while(i <= 10){
console.log(i++)
}
for 迴圈
var i =1 // 初始值
while(i <= 10){ // 終止條件
console.log(i)
i++ // i 每一圈要做的事情
}
// for 語法
for (初始值 ; 終止條件 ; i 每一圈要做的事情){
console.log(i)
}
想印出 10 以內的偶數
for (var i =1 ; i <= 10 ; i++){
if (i%2) continue
console.log(i)
}
搭配陣列
var scores = [49,60,24,64,63]
for (var i = 0 ; i <scores.length ; i++){
console.log(scores[i])
}
算總分
var scores = [49,60,24,64,63]
var sum = 0
for (var i = 0 ; i <scores.length ; i++){
console.log(scores[i])
sum += scores[i]
}
console.log(sum)
forEach()
要把陣列的每一個元素,都執行 function 一次
const array1 = ['a', 'b', 'c'];
array1.forEach(element => console.log(element));
for...of
for...of語句在可迭代對象(包括Array,Map,Set,String,TypedArray,arguments 對像等等)上創建一個迭代循環,調用自定義迭代鉤子,並為每個不同屬性的值執行語句
const array1 = ['a', 'b', 'c'];
for (const element of array1) {
console.log(element);
}
// expected output: "a"
// expected output: "b"
// expected output: "c"
- 迭代器(Iterator)
疊代(迭代)是重複回饋過程的活動。每一次對過程的重複被稱為一次「疊代」,而每一次疊代得到的結果會被用來作為下一次疊代的初始值。- 請問到底是在「疊代」或是在「迭代」?
for...in
迭代物件的可列舉屬性。對每個相異屬性,執行陳述式。
const object = { a: 1, b: 2, c: 3 };
for (const property in object) {
console.log(`${property}: ${object[property]}`);
}
// expected output:
// "a: 1"
// "b: 2"
// "c: 3"