[MTR04] W2 D5 迴圈與函式


Posted by Christy on 2020-06-23

看影片:

「先做再說:do...while...」到「最基本的函式結構」

跟我一起跑操場:迴圈

先做再說:do...while...

  • 大括號代表一個區塊 {}
  • 小括號放條件 ()

最常見的形式:

var i = 1

do {
 console.log(i)
 i++ 
} while (i<=100)

console.log('i=', i)
  • do...while...的執行方式是,從 do 開始,i = 1,i++ -> i = 2,判斷是否符合 while 裡面的條件,是的話就再回到 do,再繼續跑。
  • 這裡講到如何用 chrome 看程式碼怎麼跑:可以在 source 那一個分頁看怎麼跑,然後回去 console 那邊看印了什麼出來。
  • 用一行一行的方式跟著電腦跑,或者用筆記把每一行的步驟寫下來,就知道迴圈是怎麼執行的

試圖擺脫無盡的輪迴:while 迴圈

  • while 迴圈長這樣
var i = 1
while (i<=100) {
 console.log(i)
 i++ 
} 
console.log('i=', i)

不知道該怎麼下標題的迴圈:for loop

  • 背景知識:迴圈最常需要的就是在某個區間的數字裡執行某件事
  • 迴圈常見三元素:

    • 一開始要做的事:初始值
    • 終止條件
    • i 每一圈要做的事 i++
  • for loop 的語法長這樣

for (初始值; 終止條件; i 每一圈要做的事) {
}
  • 實際上長這樣:
for (i = 1; i<=100; i++) {
 console.log(i)
}

在 Js 裡面,分號代表這一行結束的意思

var scores = [1, 2, 3, 4, 5]

for (var i=0; i<=4; i++) {
 console.log(score[i])
}
  • 通常 for loop 會用在你已經知道要跑多少圈的情況下

最後一塊拼圖:函式(Function)

最基本的函式結構

函式或叫做函數長這樣:

function abc(a, b, c) {   abc 是 function 的名稱
 return a + 2*b + 3*c     return 是回傳結果
}

console.log(f(1, 2, 3))

記得 return 後面要有東西,不然就會變成 undefined,如下

function {
 answer: x*2
}

  • 終於下雨了,天氣比較涼快了,好開心。看床墊終於有個雛形了,接下來就是躺床之旅了。
  • 明天是這裡的‘國慶日’,是不是有搞錯什麼,魁北克是自己一個國家嗎?哈哈哈,他們的獨立問題存在已久,挺有趣的。
  • 放在程式的時間太少了,我必須要再多努力才行。
  • 今天去學校辦事,到處都是黃色禁止進入的封條,飲水機用黑色塑膠袋包起來,每個地方都充滿了消毒酒精,但總算把新家地址改好了。去銀行辦事也很順利,只是排隊排得有點久,現在連去超市買菜進場都要等個至少半小時以上吧,保持安全距離的做法,在這種時刻,做每一件事都特別困難。
  • 對於學習過程我好像有點心得了,感覺分成三個階段:
    • 完全不懂的階段:就像昨天看影片「先做再說:do...while...」,有種 Huli 說的是中文嗎我怎麼一個字都聽不懂的狀態下學習,但冷靜地把我聽懂的跟聽不懂的分開,然後再聽第二次好像就漸漸明白了。
    • 當下聽懂了,可是要用時發覺自己一知半解:就像昨天卡關的部分一樣,看影片的當下是懂的,但在寫程式時完全忘了規則,然後寫出錯的程式碼。
    • 完全理解也記得怎麼用:其實我在程式這個領域裡面,幾乎很少會有這樣的情形出現,第一週對我來說不困難是因為我在之前就已經開始預習了,所以正式開始時我等於是上了第二遍這樣。
  • 這些體悟告訴我幾件事:
    • 只要持續學,總是會學會的
    • 學習過程就是從不懂到懂,沒有例外
    • 如果一開始就懂,那就不需要學了
      Happy learning, happy coding!









Related Posts

JavaScript 網頁事件處理 1

JavaScript 網頁事件處理 1

如何用 sequel pro 連到之前 xampp 的資料庫

如何用 sequel pro 連到之前 xampp 的資料庫

Avoid blocking by navigation menu on mobile device

Avoid blocking by navigation menu on mobile device


Comments