【Ruby入門】until の使い方(until・do を使った繰り返し処理まとめ)

until を使うと、繰り返し処理を行うことができます。

以下から Rubyでの「until・do」の使い方を解説していきます。

 

until の基本

「until」を使うと、指定した条件が真(true)になるまで(条件が偽、つまり false の間)、繰り返し処理を行うことができます。

until 条件 do
  繰り返しを行う処理
end

 

until を使ったプログラム例

実際にプログラムを書いて動作を確認してみましょう。

以下は、「i」の変数に入れた 1 を、5になるまで、1ずつ足しながら表示する例。

プログラム
i = 1

until i >= 5 do
  p i
  i += 1
end
実行結果
1
2
3
4
メモ

i += 1 は、「i」の変数に入っている数値に 1 を足す書き方です。

i = i + 1 と書くこともできます。

do 〜 end のブロック内に繰り返して行いたい処理を書きます。今回の場合は p i で「i」の値を表示し、i += 1 で「i」に1を足す処理を繰り返し行います。

そのため「i」の値は 1, 2, 3, …… と増えていき、5 になると、条件で指定した >= 5 が真(true)となるため、繰り返し処理は終了します。

 

条件の指定方法

上の例では条件式として i >= 5 を用いましたが、他にもさまざまなバリエーションがあります。

 

条件式で使える比較演算子

条件式で使える比較演算子には以下のようなものがあります。

a == b a と b が等しい
a != b a と b が等しくない
a > b a より b が小さい
a < b a より b が大きい
a >= b a より b が小さい、または等しい
a <= b a より b が大きい、または等しい
a && b a も b も正である
a || b a または b が正である
!a a の否定

 

上の記述を組み合わせて、

  • a == b && c == d
  • (a > b || c < d) && e == d

といった記述もできます。

 

以下は条件式の具体例。

score が80以上・100以下
score >= 80 && score <= 100
score が80以上・100以下でない
!(score >= 80 && score <= 100)

 

条件式で使えるメソッド

結果が truefalse で返ってくるものであれば、条件式でメソッドを使うことができます。

以下の例では a.empty? で配列が空かどうかをチェックしています。

プログラム
a = []

if a.empty?
  p "配列は空です"
end
実行結果
"配列は空です"
メモ

配列や empty? の使い方について詳しくはこちら

 

まとめ

以上、Rubyでの「until・do」の使い方でした!

 

ここまでの内容をまとめておきます。

  • 「until」を使うと、繰り返し処理を行うことができる。
  • until ○○○ do 〜 end のブロック内に、繰り返して行いたい処理を書く。
  • until ○○○ do 〜 end○○○ で指定した条件が真(true)になるまで(条件が偽、つまり false の間)、処理が繰り返し行われる。