Rangeとは?
CoddyのRubyジャーニー「ロジックとフロー」セクションの一部 — レッスン 6/56。
あなたはすでに for ループや配列のスライスで範囲(range)を使用したことがあるでしょう。しかし、範囲は単なる構文ではなく、本物のRubyオブジェクトであり、独自のメソッドを持っています。
..(2つのドット、終端を含む)または ...(3つのドット、終端を含まない)を使用して作成します:
inclusive = 1..5 # 1, 2, 3, 4, 5
exclusive = 1...5 # 1, 2, 3, 4to_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"]チャレンジ
初心者2つの整数(2行の入力)を読み込みます:start と end_value。以下の3行を出力してください:
- 包含的な範囲
start..end_valueを配列として(inspectを使用) - 排他的な範囲
start...end_valueを配列として - 包含的な範囲のサイズ
入力が 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, 4to_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)、および閉区間のサイズを出力する
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。