學完 if-else, while, for 之後我們已經可以解決許多問題惹。作為程序流程的最後一篇,今天介紹一個幾乎很少使用的語法:goto. 如果妳有寫過 batch 或 bash script 的經驗,應該不會對 goto 感到陌生。我們可以在程式碼當中的任意處加上 label:, 再用 goto label; 跳轉到該label:. 乍看之下很方便,但是在程式碼當中大量濫用 goto 將會肇致許多麻煩,因此被多數人視為洪水猛獸,包括 MISRA 等機構建議不要使用,有些人或許甚至沒學過。 事實上,if-else, while, for 等程序流程在編譯後,於組合語言當中,也都是各式各樣的跳轉指令 (jxx), goto 就是...

我們現在會輸出一行字串,對吧??如果要輸出兩行呢??複製貼上,搞定。可是要是是 \(100, 1000\), 甚至是 \(n\) 次呢??電腦的專長除惹計算,還有做重複的事,這時我們可以運用迴圈。 while while 的語法有點像 if: while (condition) { // ... } 與 if 的不同在於 while 會重複執行大括弧內的陳述,直到 condition 為零。來看個範例吧 這個程式首先模擬丟擲一顆骰子,產生閉區間 \([1, 6]\) 內的偽隨機數為 val, 之後讓使用者輸入 n, 當 n != val 就讓使用者繼續猜。第二、八、九及十行前半是產生亂數的方法,可以先不理它。而第十行後半的 n =...

先前我們的程式很單純,就是順順得執行下去。再來的幾篇文章要介紹的陳述能讓我們的程式多些變化,並解決更多問題。 if-else 條件判斷 還記得1.1 的範例 嗎??我們寫惹個程式,允許使用者輸入兩個整數,而我們輸出兩者相除之商與餘數。然而,如果今天有人很 87 輸入87 0, 那麼會發生什麼事?? 動手手試看看,讓電腦除以 0 會怎樣?? 電腦會爆炸嗎??顯然不會。如果你在 VS Code 按下 F5 偵錯,這時程式回停下來告訴你 Exception has occurred. Arithmetic exception. 如果直接在終端機執行,會輸出 floating point exception 之類的。總之,程式不正常得提前...