10
5

More than 5 years have passed since last update.

ruby 繰り返し処理 基本操作まとめ

Last updated at Posted at 2018-05-17

はじめに

rubyの勉強をはじめたので、
自分の思考の整理、メモとして繰り返し処理に関しての基礎的なことを書きます。

  • terminalにてirbと打つことでコードを試すことができる。exitで終了
  • 拡張子.rbのファイルにコードを記述してterminalにてruby ファイル名 でコードを実行できる。
  • puts pで表示できる。jsで言うところconsole.log()
  • コメントアウトは#

関連 ruby 配列 基本操作まとめ

for

あらかじめ指定したオブジェクトから順に値を取り出しながら繰り返す。

for 変数 in オブジェクト do
  実行する処理
end

オブジェクトの部分には配列、範囲オブジェクト、ハッシュ、などが該当

  • コード
for num in [1,2,3,4] do
  p num
end
for num in 1..4 do
  p num
end
animals = {:dog => "いぬ", :cat => "ねこ"}
for key, value in animals
    puts "KEY:#{key} VALUE:#{value}"
end

# KEY:dog VALUE:いぬ
# KEY:cat VALUE:ねこ

while

指定した条件式が真(true)の間、繰り返す

while 条件式 do
  実行する処理
end
結果 条件
false と nil 以外のオブジェクト全て
false と nil
  • コード
num = 0
while num <= 12 do
  p num
  num += 5
end

#0
#5
#10

until

指定した条件式が偽(false)の間、ループする。

「while」文が真(true)の間繰り返しを行うのに対して「until」文は偽(false)の間繰り返す。

until 条件式 do
  実行する処理
end
num = 15
until num <=10 do
  p num
  num -=1
end

#15
#14
#13
#12
#11

ここまでRubyの制御構造である繰り返し処理
*for while until ではdo省略可


each

オブジェクト.each do |変数|
    実行する処理
end
  • コード
(8..10).each do |num|
  puts num
end

#8
#9
#10

*範囲オブジェクトは括弧で囲って記述

each_with_index

eachではindexがとれないのでindexが欲しい時に使用。

["dog","cat"].each_with_index do |item,index|
  p "#{index}. #{item}"
end

#"0. dog"
#"1. cat"

times

回数.times do
    繰り返す処理
end
  • 回数を変数として持つ(0から始まる)

3.times do |i|
  puts "#{i}回目"
end

#0回目
#1回目
#2回目

upto

timeメソッドと違って指定した初期値から最大値までを1ずつ増やしながらループ

1.upto(3) do |i|
  puts "#{i}回目"
end

#0回目
#1回目
#2回目

downto

指定した初期値から最初値まで数値を1ずつ減らしながらループ

初期値.downto(最小値) do |i|
    繰り返す処理
end
3.downto(1) do |i|
  puts "#{i}"
end

#3
#2
#1

繰り返しの制御

命令 条件
break 繰り返しを中断し、繰り返しの中から抜ける
next 次の繰り返しに処理を移す
redo 同じ条件で繰り返しをやり直す
  • break
[1,2,3].each do |num|
  break if num ==2
  p num
end

#1
  • next
[1,2,3,4].each do |num|
  next if num ==2
  p num
end
#1
#3
#4
  • redo
[0,1,2].each do |num|
  num += 1
  p num
  redo if num == 1
end

#1
#2
#2
#3

まだまだ色々ありますが、今回はここまで。

10
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
5