循環循環(Loops & Iterators)讓你可以重複執行特定的程式碼。例如,當你要將同一個訊息重複輸出十次時,就可以用到循環循環。Ruby的循環循環主要可分成三組:

  1. WhileUntil  循環。
  2. For循環以及Next關鍵字。
  3. 三個iterators: L oop  .each以及.times .

我們來逐一地看看吧。

Ruby 程式語言學習筆記:

1.  Ruby程式語言學習筆記(一):Ruby基礎

2.  Ruby程式語言學習筆記(二):Ruby的條件判斷式(Control Flow)

3.1 While 與Until 循環。

While 與Until 循環的特點就是你要控制循環條件。

3.1.1 While 循環

先看一個範例。

如你所見,While循環中,你需要自行修改判斷依據(counter),使得它最終會變成false,以此來結束While循環。

3.1.2 Until 循環

Until 跟 While 差在判斷的部份。對While來講,當條件爲真(true)的時候,循環會被執行;而對Until來講,當條件爲假(false)時,循環纔會被執行。兩著正好相反。換言之,只要你把判斷邏輯改一下,它們是可以互相取代對方的。Ruby滿強調同樣的目標可以透過多種方式來實現現,這就是很好的體現。

 

 3.2 For 循環與Next 關鍵字

3.2.1 For 循環

For 循環用於你確定重複次數的情況下。來看以下的例子。

在For 循環中,你無需預先定義”counter”。”in 1..5″表示循環的範圍,這是裡從1 到5 ,也就是5 次。你也可以設定不包含最後一個數字的範圍,只要用三個點就可:1…5

3.2.2 Next 關鍵字

Next關鍵字是用來跳過某一輪的循環。它可以用任何的循環裡,不論是While, Until, For還是其他的iterators。以下的例子以For循環為例。

 

3.3 三個常用的iterators: Loop, .each and .times

Iterators也是用來重複執行一段程式碼。基本上它們比循環循環要簡單一些。

3.3.1循環迭代器

Loop 不進行任何判斷,直接開始循環循環,很容易造成無限循環(程式跑不完)。通常要搭配”break”關鍵字來將循環結束掉。

下面的例子就是一個無限循環:

 

 3.3.2。每個迭代器

.each是用來將物件中的每個成員跑一遍。對陣列(array)尤其實用。先看看.each的語法,共有兩種:

以下就是用.each來處理陣列中的每個成員。忘記了陣列是什麼?沒關係,可以看這裡後面我們會更深入地介紹陣列,先來看看.each的這個範例。

 

 3.3.3次迭代器

.times跟For循環很像。它用在數字上,那個數字就代表循環次數。請看以下程式。

非常淺顯易懂吧,只要知道循環次數,.times就很好用。

 

轉貼至:https://nodejust.com/ruby-program-tutorials-loops-iterators/zh-cn/

相關文章