Menu
Coddy logo textTech

Rangeとは?

CoddyのRubyジャーニー「ロジックとフロー」セクションの一部 — レッスン 6/56。

あなたはすでに for ループや配列のスライスで範囲(range)を使用したことがあるでしょう。しかし、範囲は単なる構文ではなく、本物のRubyオブジェクトであり、独自のメソッドを持っています。

..(2つのドット、終端を含む)または ...(3つのドット、終端を含まない)を使用して作成します:

inclusive = 1..5    # 1, 2, 3, 4, 5
exclusive = 1...5   # 1, 2, 3, 4

to_a を使用して範囲を配列に変換し、その範囲に何が含まれているかを正確に確認します:

puts (1..5).to_a.inspect    # [1, 2, 3, 4, 5]
puts (1...5).to_a.inspect   # [1, 2, 3, 4]

範囲(Range)は数値のためだけのものではありません。文字など、順序を持つあらゆるものに対して機能します:

puts ("a".."e").to_a.inspect  # ["a", "b", "c", "d", "e"]
challenge icon

チャレンジ

初心者

2つの整数(2行の入力)を読み込みます:startend_value。以下の3行を出力してください:

  1. 包含的な範囲 start..end_value を配列として(inspect を使用)
  2. 排他的な範囲 start...end_value を配列として
  3. 包含的な範囲のサイズ

入力が 1、次に 5 の場合、出力は以下の通りです:

[1, 2, 3, 4, 5]
[1, 2, 3, 4]
5

チートシート

Rubyの範囲(Range)は、..(終端を含む)または...(終端を含まない)を使用します:

inclusive = 1..5    # 1, 2, 3, 4, 5
exclusive = 1...5   # 1, 2, 3, 4

to_aを使用して、範囲を配列に変換します:

puts (1..5).to_a.inspect    # [1, 2, 3, 4, 5]
puts (1...5).to_a.inspect   # [1, 2, 3, 4]

範囲は文字でも機能します:

puts ("a".."e").to_a.inspect  # ["a", "b", "c", "d", "e"]

自分で試してみよう

start     = gets.to_i
end_value = gets.to_i

# TODO: 閉区間(inclusive range)、開区間(exclusive range)、および閉区間のサイズを出力する
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン