Chiayin's blog

【2020 12th鐵人賽】Ruby名詞解釋總匯 - Day 12 : Ruby的「註解、流程控制」

字數統計: 975閱讀時間: 3 min
2022/10/30

註解 Comment

*英文發音
首先來聽聽英文發音~。
Yes

註解的用意?

為什麼在程式碼裡面還要寫註解呢?其實啊,程式碼裡的註解是給設計者看的,它的特性為「在程式跑動時會被忽略,不被執行」。也因此,註解在程式語言中佔據相當重要的部分,其主要用途為:

  • 解釋原始碼的功能:增加程式的閱讀性與維護性。
  • 除錯功能:讓該行程式碼不執行,尋找代碼bug的位置。

使用註解的方式

在前面的章節其實使用過許多次了,註解分為:

  • 單行註解:井字號#
  • 塊註解:多行註解=begin=end

範例:

1
2
3
4
5
6
7
8
9
# 這是
# 單行
# 註解

=begin
這是
多行
註解
=end

各種程式語言,七彩斑斕的註解

不同的程式語言的註解符號與代碼不盡相同,可透過以下圖表來了解唷!

單行註解

塊註解(多行註解)


流程控制 Flow Controller

*英文發音
首先來聽聽英文發音~。

Flow
Yes

Controller
Yes

什麼是流程控制呢?

程式碼執行的順序是由上而下一行行執行的,這叫做「循序結構。但有時內容會因為判斷的情況不同而去執行不同的程式區塊,或是設定條件去執行某些重複的內容。這就是所謂的「流程控制」!

邏輯判斷

根據邏輯運算的條件來判斷程式碼執行的流程,一判斷的結果執行不同的執行區塊,其指令有:

1
2
3
4
5
if...end
if...else...end
if...eslsif...else...end # 注意不是eslseif唷!

unless # 有否定意味,等同於 if not

範例:

1
2
3
4
5
if 作業 == "有寫"
puts "可以看電視"
else
puts "回房間寫作業"
end
*倒裝句

其中也有倒裝句的寫法,可以將多行code縮寫成短短一行,就注意的是,寫程式碼最重要的就是「可讀性」,能寫出如文章般的code是最厲害的,所以不一定要使用很厲害寫法,而導致未來的自已或未來維護的人員看不懂唷。

1
2
3
4
5
6
7
# 範例
if 作業 == "有寫"
puts "可以看電視"
end

# 改寫倒裝句
puts "可以看電視" if 作業 == "有寫"
*條件運算子(三元運算子)

在一個條件後面會跟著一個問號 (?),如果條件是 true,在冒號(:)前的表達式會被執行,如果條件是 false,在冒號後面的表達式會被執行,這個運算子常常被用來當作 if 的簡潔寫法。

1
2
3
4
5
6
7
8
9
# 範例
if 作業 == "有寫"
行為 = "可以看電視"
else
行為 = "回房間寫作業"
end

# 改寫三元運算子
行為 = (作業 == "有寫")? "可以看電視" : "回房間寫作業"
*只有nilfalse是假的!

順便一說,Ruby世界的nilfalse物件,所賦予的意思為「空空的」、「不存在」唷。

它可以進行其他操作,例如呼叫轉型的函式:

1
2
3
4
p nil.to_s # ""
p nil.to_i # 0
p nil.to_a # []
p nil.to_h # {}, Ruby 2.0 之前會出錯

迴圈

撰寫程式碼的過程中,會出現需要連續執行多次的程式碼的時候,這時我們就可以使用「迴圈」,「迴圈」只會在一段程式中出現一次。

常見的迴圈可以分為二種:

  1. for…in迴圈:指定執行次數的迴圈。
    話在前頭,其他程式語言常見的for(i=0;i<10;i++)三個複合陳述區塊寫在圓括號中的寫法在Ruby是不存在的。
  2. while迴圈:指定繼續執行條件或停止條件的迴圈。
  3. times, upto, downto方法
  4. 迭代(iteration)

參考資料

  • 為你自己學Ruby on Rails
  • 維基百科

本文於 2020-09-19 發表在舊網站。

發佈日期:2022-10-30

更新日期:2022-10-30

CATALOG
  1. 1. 註解 Comment
    1. 1.1. 註解的用意?
    2. 1.2. 使用註解的方式
    3. 1.3. 各種程式語言,七彩斑斕的註解
  2. 2. 流程控制 Flow Controller
    1. 2.1. 什麼是流程控制呢?
      1. 2.1.1. 邏輯判斷
        1. 2.1.1.1. *倒裝句
        2. 2.1.1.2. *條件運算子(三元運算子)
        3. 2.1.1.3. *只有nil和false是假的!
      2. 2.1.2. 迴圈
    2. 2.2. 參考資料