iT邦幫忙

2025 iThome 鐵人賽

DAY 3
0

前兩天就這樣咻的讀完了兩個章節XDD
後面的章節顯然越來越難,應該得拆成好幾天寫惹

今天來寫 Chapter 2 的練習題,共有3題

  1. Looping a triangle
    用迴圈印出如下的三角形
#
##
###
####

for loop:

function printTriangle(layer) {
    let currentLayer = "";
    for (let i = 0; i < layer; i++) {
        console.log((currentLayer += "#"));
    }
}
printTriangle(4);

while loop:

function printTriangleWithWhile(layer) {
    let currentLayer = "";
    while (currentLayer.length < layer) {
        console.log((currentLayer += "#"));
    }
}
printTriangleWithWhile(4);

另外如果不限定使用迴圈(loop)的話,也可以用遞迴(recursive)寫

recursvie:

// give the "#" as init value of layerContent
function printTriangleWithRecursive(layer , layerContent="#"){
    console.log(layerContent);
    if(layer <=1){
    return;
    }
    printTriangleWithRecursive(layer-1 ,layerContent += "#" )
}

printTriangleWithRecursive(5);
  1. FizzBuzz
    印出整數 1~100 , 遇到3整除改印『Fizz』, 遇到5整除改印『Buzz』
    遇到『3跟5都能整除』,則印『FizzBuzz』

ternary operator:

function fizzBuzz() {
    for (let i = 1; i <= 100; i++) {
        let result = null;
        i % 3 === 0 && i % 5 === 0 && i
          ? (result = "fizzBuzz")
          : i % 3 === 0 && i
          ? (result = "fizz")
          : i % 5 === 0 && i
          ? (result = "buzz")
          : (result = i);
        console.log(result);
    }
}
fizzBuzz();

if else:

function fizzBuzzIfElse() {
    for (let i = 1; i < 100; i++) {
        if (i % 3 === 0 && i % 5 === 0) {
            console.log("FizzBuzz");
        } else if (i % 3 === 0) {
            console.log("Fizz");
        } else if (i % 5 === 0) {
            console.log("Buzz");
        } else {
            console.log(i);
        }
    }
}
  1. Print Chessboard
    先印出8x8的棋盤,接下來定義一個綁定變數size
    將程式改成適用於任何size,並印出對應尺寸的棋盤
 # # # #
# # # #
 # # # #
# # # # 

function drawGrid(value) {
    // 奇數行 奇數格space 偶數#
    // 偶數行 奇數格# 偶數spaces
    for (let i = 0; i < value; i++) {
        drawLine(i);
    }

    function drawLine(numberOfLine) {
        let gridLine = "";
        for (let i = 0; i < value; i++) {
            if (numberOfLine % 2 === 0) {
                i % 2 === 0 ? (gridLine += " ") : (gridLine += "#");
            } else {
                i % 2 === 0 ? (gridLine += "#") : (gridLine += " ");
            }
        }
        console.log(gridLine);
    }
}
drawGrid(8);

那麼,明天就要進入 Chapter 3 函式囉~


上一篇
Chapter 2 程式結構-day2
下一篇
Chapter 3 函式 Function_1-day4
系列文
溫故而知新:Eloquent Javascript 閱讀筆記5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言