36 一直如果與如果否則的比較

(2018/09/21)

一直以來對邏輯判斷的程式寫法,總喜歡用直覺的方式,一直如果下去,覺得這是小朋友最容易理解的方式,但今天利用統計執行程式的時間,終於可以讓學生清楚的了解到原來還有更好的程式寫作方式!而且,如果要讓自己的程式功力大增就要改用如果否則的方式去寫作!

一、剪刀、石頭、布的猜拳遊戲

  • 這是一個很入門的遊戲,先隨機產生一個0~2的數,如果產生是0就呈現剪刀圖案、如果產生是1就呈現石頭圖案、如果產生是2就呈現布圖案

  • 程式如下,這是小朋友最容易理解的寫法:(方法一)

    • 但是對於多分法的判斷,還有一種很常被使用的寫法,如下:(方法二)

  • 以上兩種方法,所呈現的結果應該都一樣,最大的差別大概就是【效能】吧!

    • 方法一,每次都要去判斷3次,即使第1個判斷就已經符合資料了,後面兩個還要花時間去判斷!

    • 方法二,從上往下判斷,如果符合資料就跳出這個判斷,因此會比較節省時間。

    • 程式的寫作有千千萬種方法,就像從高雄到台北,有千千萬條路一樣,但一個好的程式設計,取決於【效能】及【程式的長短】,效能越好的程式當然越好,在同樣效能下,當然程式越短越好!

  • 為讓學生了解哪一種效能好,我們量測程式執行10000次所需的時間來當佐證

    • 程式修改如下:

      • 測量結果:利用實體板子測得(模擬器比較不準),方法一(按A鍵)得52ms,方法二(按B鍵)得3、40ms!因此,小朋友,如果想讓自己寫程式的功力大增,要慢慢改用方法二的方式來寫多分法的判斷!!

二、電子骰子

  • 這也是一個很入門的遊戲,先隨機產生一個0~5的數,如果產生是0就呈現1點、如果產生是1就呈現呈現2點、如果產生是2就呈現呈現3點、如果產生是3就呈現呈現4點、如果產生是4就呈現呈現5點、如果產生是5就呈現呈現6點

  • 程式如下,這是小朋友最容易理解的寫法:(方法一)

    • 但是對於多分法的判斷,還有一種很常被使用的寫法,如下:(方法二)

  • 為讓學生了解哪一種效能好,我們量測程式執行10000次所需的時間來當佐證

    • 程式修改如下:

    • 測量結果:利用實體板子測得(模擬器比較不準),方法一(按A鍵)得87ms,方法二(按B鍵)得40~70ms!