iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
1
自我挑戰組

語法改革!零基礎新手也能讀懂的JS!系列 第 7

Day07 語法改革!零基礎新手也能讀懂的JS - 流程判斷、迴圈

今天主要也來講解一些在JS裡的基本觀念!新手們撐住啊!

流程判斷

大家最常使用的應該就是if..else,在js也可以使用switch case,但大部分情況我自己還是使用if判斷式居多XD

if..else

if(條件) {
  // 條件成立就執行此程式碼
} else {
  // 條件不成立就執行此程式碼
}

當然也可以有if..elseif...

if(條件1) {
  // 條件1成立就執行此程式碼
} else if (條件2) {
  // 條件2成立就執行此程式碼
} else {
  // 以上條件都不成立執行此程式碼
}

switch

在某些時候會比起if判斷式看起來更加簡潔更見

switch (條件) {
  case 值1:
    //如果等於此值1就執行此程式碼
    break;
  case 值2:
    //如果等於此值2就執行此程式碼
    break;
  case 值3:
    //如果等於此值3就執行此程式碼    
    break;
  default:
    // 都沒有成立就執行此程式碼
    break;
}

舉例像是:

let a = 8

switch (a % 3) {
  case 1:
    console.log("case1")
    break;
  case 2:
    console.log("case2")
    break;
  case 3:
    console.log("case3")
    break;
  default:
    console.log("case4")
    break;
} // 會印出"case2"

但如果使用if的話會像是這樣:

let a = 8

if (a % 3 === 1) {
    console.log("case1")
} else if (a % 3 === 2) {
    console.log("case2")
} else if (a % 3 === 3) {
    console.log("case3")
} else {
    console.log("case4")
}

雖然看起來比較短,但是有注意到嗎?條件式其實看起來都很相似,等於是重複寫了好幾次,如果遇到這種情況可以考慮使用switch

再來要注意的事情是 一定要記得寫break 否則switch是不會停下來的喔!

let a = 8

switch (a % 3) {
  case 1:
    console.log("case1")
  case 2:
    console.log("case2")
  case 3:
    console.log("case3")
  default:
    console.log("case4")
} // 會印出"case2~4" 因為沒有告知他何時要停下!!!!

三元運算子

如果寫JS很熟練之後其實大部分的人都會直接使用三元運算子,才是真正的簡潔有力啊!!!!

(條件) ? true的話回傳第一個值 : 為false就傳第二個值;

所以如果原本的判斷式為:

if (ck >= 30) {
  bmi = '要注意ㄚㄚㄚㄚ'
} else {
  bmi = '不重不重'
}

三元運算子:

let bmi = (ck>=30) ? '要注意ㄚㄚㄚㄚ' : '不重不重'

是不是簡短到爆炸啦!!!!但如果很少使用的話其實很不直覺,但個人還是推薦要多練一下三元運算子!

迴圈

主要就是讓程式幫你跑你指定要重複的某件事情,再透過某些條件停止迴圈,否則會無止盡的跑下去XDD

for

在已知有個明確要重複執行的次數的話建議使用for,但大部分情況我個人也都是使用for居多XD

for (初始值;條件;結束後的改動) {
// 要執行的程式碼
}

運作的方式大概是先找到初始值,之後看是否符合條件,如果符合的話就執行程式碼,並回傳結束後的改動到下一次迴圈的開始。

while

在不太確定要重複執行的次數的話建議使用while

while (條件) {
  //要執行的程式碼
  //結束後的改動
}

breakcontinue

主要是用來跳過或判斷到某個值之後就停。

break => 遇到直接跳離迴圈,不做下次
continue => 跳過這次,跑下一次的迴圈

所以如果這次想要找出陣列中第一個數字1:

let a = [0,2,1,3]

for(let i = 0; i < a.length; i++ ) {
  if(a[i] == 1) {
  console.log(a.indexOf(a[i])) // 2
  break;
  }
}

或是如果當遇到1的時候跳過不做:

let a = [0,2,1,3]

for(let i = 0; i < a.length; i++ ) {
  if(a[i] == 1) {
  continue;
  }
  console.log(a[i]) // 0,2,3
}

以上就先介紹到這邊,大家明天見摟~


上一篇
Day06 語法改革!零基礎新手也能讀懂的JS - 運算式、運算子(下)
下一篇
Day08 語法改革!零基礎新手也能讀懂的JS - 函式(function)
系列文
語法改革!零基礎新手也能讀懂的JS!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言