iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0
自我挑戰組

一個月的後端學習之旅系列 第 14

【DAY14】 for、while、do while

  • 分享至 

  • xImage
  •  

迴圈 Loop

迴圈提供一個快速又簡潔的方法來重複地做某件事,各式各樣的迴圈機制提供了不同的方法來定義該迴圈的起始與結束

常見的迴圈有 for, do while, while 等等

若把return關鍵字放到 loop 內部,則循環會馬上停止

function findFirstPositive(numbers) {
  for (let i = 0; i < numbers.length; i++) {
    if (numbers[i] > 0) {
      return numbers[i]; // 一旦找到正數,立即返回
    }
  }
  return "No positive numbers found."; // 如果沒有正數,返回這個訊息
}

let numbersArray = [-1, -2, 3, -4, 5];

let result = findFirstPositive(numbersArray);

console.log(result); // -> 3,找到了第一個正數,立即返回

For loop

如果已知要做某事幾次,可以使用 for loop

  • Initialization 是在循環開始之前的計數器變量聲明
  • Condition 是每次循環迭代之前要評估的表達式,如果此表達式的計算結果為真,則執行 statement,如果 condition 的計算結果為假,則執行退出循環並轉到 for loop 之後的第一條語句
  • Final expression 是在每次循環迭代結束時要執行的程式碼,一般用於更新或遞增計數器變量
for (initialization; condition; final expression){
    statement
}
for (let i = 0; i < 11; i++) {
  console.log(i);
}

console.log("for loop 執行完畢");

// i = 0, i < 11 is true, print 0 and i 值更新成 1
// i = 1, i < 11 is true, print 1 and i 值更新成 2
// ...
// i = 10, i < 11 is true, print 10 and i 值更新成 11
// i = 11, i < 11 is false, print for loop 執行完畢
// 總共是執行11次

再舉一個例子

for (let i = 0; i < 5; i++) {
  console.log("這是第 " + (i + 1) + " 次迴圈");
}

// 這是第 1 次迴圈
// 這是第 2 次迴圈
// 這是第 3 次迴圈
// 這是第 4 次迴圈
// 這是第 5 次迴圈

While Loop

不知道loop要執行幾次

創建一個循環,執行語句之前評估條件,只要測試條件評估為真,該循環就會執行指定的語句

while (condition){  // -> condition是boolean值
    statement
}
let k = 5;
while (k > 0) {
  console.log("Countdown: " + k);
  k--;
}

// Countdown: 5
// Countdown: 4
// Countdown: 3
// Countdown: 2
// Countdown: 1

再舉一個例子

let num = 1;

while (num <= 10) {
  console.log(num);
  num += 2;
}

// 1
// 3
// 5
// 7
// 9

!!忘記增加計數器而導致while loop無限循環,則有可能癱瘓電腦CPU

這樣會造成無限迴圈

while (true) {
  console.log("這個程式碼正在被執行...");
}

有i++後,就能正常執行

// 宣告一個計數器
let i = 0;

while (i < 10) {
  console.log(i);
  i++;
}

Do while Loop

創建一個循環,該循環先執行指定的statement,再評估,直到測試條件為假

do {
  statement
}while (condition);
let i = 11;

do {
  console.log(i);
  i++;
} while (i < 10);  // -> 11

再舉一個例子

let num = 0;

do {
  console.log("執行中..."); // 先執行陳述句
  num++;
} while (num < 0); // 再評估條件

console.log("結束");

// 執行中...
// 結束

for while 在語法上是可以互換的

for (let i = 0; i < 100; i++) {
  console.log(i);
}

let j = 0;
while (j < 100) {
  console.log(j);
  j++;
}

// while在彈性上比for好

下一篇文章學習Nested loop、Break、Continue、Math Object。


上一篇
【DAY13】物件導向語法
下一篇
【DAY15】Nested loop、Break、Continue、Math Object
系列文
一個月的後端學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言