はじめてのRuby!until文を使った繰り返し処理を紹介

こんにちは!エンジニア兼ライターのヤマシタです。

Rubyにはさまざまな繰り返し処理が用意されています。

ここでは、

「条件が真(true)になるまで繰り返し処理を行いたい」

といった人に向けて、until文の使い方について、

【基礎】until文とは
【基礎】until文の基本的な使い方
【基礎】until文で無限ループする方法
【発展】until文で配列の値を取得する方法
【発展】さまざまな繰り返し処理

などについて解説いたします。

until文は条件式を指定することによって、繰り返し処理を行うことができますので使い方については理解しておきましょう。

until文とは

until文はRubyの繰り返し処理の1つで、条件が偽(false)である限り繰り返し処理を行い、上限が真(true)になったら繰り返し処理を終了します。

until文は以下のように記述します。

until 条件式 do
  繰り返し実行する処理
end

よく似た処理としてwhile文がありますが、違いとして

  • while文は真(true)の間繰り返す
  • until文は偽(failse)の間繰り返す

と覚えておきましょう。

while文については、以下の記事で詳しく解説しています。

untilの使い方

実際にuntil文の使い方を見ていきましょう!

untilの基本的な使い方

以下のプログラムでは値が5になるまで繰り返し処理を行います。

サンプルプログラム:

num = 1

until num ==5 do
  p num
  num +=1
end

実行結果:

1
2
3
4

このように値が5になるまではuntilの条件式はfalseになりますので、繰り返し処理が続行され、5になった時点でtrueとなり繰り返し処理が終了します。

注意点として、until文は条件式がtrueになるまで繰り返し処理を行いますので、式は無限ループにならないように気をつけましょう。

無限ループ

until文は条件がfalseの間、do〜endの繰り返し処理を行います。

そのため、意図的に無限ループを行いたい場合は条件式に「false」を指定します。

until false do
  p “loop!”
end]

実行結果:

“loop!”
“loop!”
“loop!”
“loop!”
“loop!”
〜

このように無限に処理が実行されます。

untilで配列の要素を取得する

untile文で配列の要素を取得したい場合は、配列の要素を1つずつ取得するためのインデックスと、配列の要素数をlengthメソッドを使用して取得しておく必要があります。

サンプルプログラム:

cnt = 0
fruits = [ "apple", "banana", "melon" ]

until cnt == fruits.length do
  p fruits[cnt]
  cnt+=1
end

実行結果:

"apple"
"banana"
"melon"

このサンプルでは、インデックスcntが配列の要素に達する(true)まで、繰り返し処理を行い、配列の値を1つずつ取得しています。

さまざまな繰り返し処理

Rubyではさまざまな繰り返し処理が用意されています。

以下の記事では、Rubyのループ処理をまとめていますのでぜひ参考にしてください!

まとめ

ここでは、条件がfalseの間繰り返し処理を行うuntil文について、

  • until文とは
  • until文の基本的な使い方
  • until文で無限ループする方法
  • until文で配列の値を取得する方法
  • さまざまな繰り返し処理

などについて解説しました。

until文はwhile文と同じく条件式で繰り返し処理を行うときに便利ですので、使い方はしっかりと理解しておきましょう。

もし、until文の使い方を忘れてしまったら、この記事を思い出してくださいね!

Writer

ヤマシタ

株式会社SAMURAI

システムエンジニアとして10年勤務→フリーランスへ。
大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。プログラミング初学者に向けてわかりやすく、ためになるコンテンツ作りを心がけています。

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI ENGINEER Plus

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら