iT邦幫忙

0

[JavaScript學習筆記] - if 判斷式裡面包含if

  • 分享至 

  • xImage
  •  

情境題 1:便利商店折扣
便利商店活動:消費滿 100 元才能參加折扣。滿 100 元的話,如果是會員再打 9 折,非會員打 95 折

let total = 150;
let isMember = true;
if (total >= 100) {
  if (isMember) {
    console.log("會員折扣!最終金額:" + total * 0.9 + " 元");
  } else {
    console.log("非會員折扣!最終金額:" + total * 0.95 + " 元");
  }
} else {
  console.log("未達折扣門檻,原價:" + total + " 元");
}
// 輸出 會員折扣!最終金額:135 元

情境題 2:遊樂園入場規則
遊樂園規定:身高必須 120 公分以上才能入場。達標的話,如果未滿 12 歲是兒童票(200 元),12 歲以上是成人票(400 元)

let height = 130;
let age = 10;
if (height >= 120) {
  if (age < 12) {
    console.log("兒童票,票價:200 元");
  } else {
    console.log("成人票,票價:400 元");
  }
} else {
  console.log("身高未達標準,無法入場");
}
//輸出 兒童票,票價:200 元

以上兩題的共同邏輯結構
外層 if → 先確認「有沒有資格」
內層 if → 再判斷「屬於哪一種情況」

情境題 3:網路購物免運規則(加入布林值)
先看是不是會員,會員滿 500 免運;非會員要滿 1000 才免運

let isMember = false; //布林值
let orderAmount = 800;
if (isMember) {
  if (orderAmount >= 500) {
    console.log("會員免運!");
  } else {
    console.log("會員未滿500元,需付運費");
  }
} else {
  if (orderAmount >= 1000) {
    console.log("滿1000元免運!");
  } else {
    console.log("未滿1000元,需付運費");
  }
}
//輸出 未滿1000元,需付運費

情境題 4:電影院購票 (加入else if)
先判斷今天是不是假日(假日加價)。確認後,再依身份分成:65歲以上長者票、6歲以下兒童票、其他全票

const isHoliday = true;
let age = 70;
if (isHoliday) {
  if (age >= 65) {
    console.log("假日長者票:250 元");
  } else if (age <= 6) {
    console.log("假日兒童票:150 元");
  } else {
    console.log("假日全票:350 元");
  }
} else {
  if (age >= 65) {
    console.log("平日長者票:200 元");
  } else if (age <= 6) {
    console.log("平日兒童票:100 元");
  } else {
    console.log("平日全票:300 元");
  }
} //輸出 假日長者票:250 元

情境題 5:停車場收費 (加入else if)
先判斷是室內還是室外停車場。確認後,再依停車時數收費:2小時以內免費、2~4小時收50元、超過4小時收100元

const isIndoor = true;
let hours = 3;
if (isIndoor) {
  if (hours <= 2) {
    console.log("室內停車,2小時內免費!");
  } else if (hours <= 4) {
    console.log("室內停車,收費:50 元");
  } else {
    console.log("室內停車,收費:100 元");
  }
} else {
  if (hours <= 2) {
    console.log("室外停車,2小時內免費!");
  } else if (hours <= 4) {
    console.log("室外停車,收費:30 元");
  } else {
    console.log("室外停車,收費:60 元");
  }
} //輸出 室內停車,收費:50 元

情境題 4、5 內層的 if → else if → else 處理三種以上的細分情況
外層 if / else → 先分兩大類(假日/室內)
內層 if → 第一種細項
內層 else if → 第二種細項
內層 else → 其餘情況

情境題 6:健身房入場資格 (加入 &&)
先判斷今天健身房有沒有開放。開放的話,再依條件判斷能不能入場:持有會員卡且年齡滿16歲才能單獨入場;沒有會員卡但有購買單次票也可以;否則無法入場

const isOpen = true;
const hasMemberCard = false;
const hasDayPass = true;
const age = 18;

if (isOpen) {
  if (hasMemberCard && age >= 16) {
    console.log("會員驗證通過,歡迎入場!");
  } else if (!hasMemberCard && hasDayPass) {
    console.log("單次票驗證通過,歡迎入場!");
  } else {
    console.log("無法入場,請先購票或辦理會員");
  }
} else {
  console.log("今日休館,請查詢開放時間");
}
//輸出 單次票驗證通過,歡迎入場!

情境題 7:外送平台下單 (加入||)
先判斷餐廳是否營業中且外送員有空。營業的話,再判斷能不能免運:會員或訂單滿300元免運;訂單未滿300元且非會員收運費;訂單金額為0則提示未選餐點

const isRestaurantOpen = true;
const isDriverAvailable = true;
const isMember = false;
const orderAmount = 350;

if (isRestaurantOpen && isDriverAvailable) {
  if (isMember || orderAmount >= 300) {
    console.log("免運費!訂單成立,預計30分鐘送達");
  } else if (!isMember && orderAmount > 0) {
    console.log("需收運費 $30,訂單成立,預計30分鐘送達");
  } else {
    console.log("購物車是空的,請先選擇餐點!");
  }
} else {
  console.log("目前無法下單,餐廳休息中或外送員忙碌");
} //輸出 免運費!訂單成立,預計30分鐘送達

&&兩個都要成立
||其中一個成立就好
!相反


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言