iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 12
0
自我挑戰組

Ruby名詞解釋總匯系列 第 12

Day 12 : Ruby的「註解、流程控制」

  • 分享至 

  • xImage
  •  

註解 Comment

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

註解的用意?

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

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

使用註解的方式

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

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

範例:

# 這是
# 單行
# 註解

=begin
這是
多行
註解
=end

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

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

單行註解

塊註解(多行註解)


流程控制 Flow Controller

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

Flow
Yes

Controller
Yes

什麼是流程控制呢?

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

邏輯判斷

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

if...end
if...else...end
if...eslsif...else...end # 注意不是eslseif唷!

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

範例:

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

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

# 範例
if 作業 == "有寫"
  puts "可以看電視"
end

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

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

# 範例
if 作業 == "有寫"
  行為 = "可以看電視"
else
  行為 = "回房間寫作業"
end

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

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

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

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
  • 維基百科

上一篇
# Day 11 : Ruby的「物件導向程式設計-方法」
下一篇
Day 13 : 學習網站開發,Ruby on Rails來了!
系列文
Ruby名詞解釋總匯14
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言