This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 1 year has passed since last update.

Rubyについて学んでいこう

Last updated at Posted at 2019-04-20

#Rubyとは
RubyはWEBアプリケーションの「システム」をつくるためのプログラミング言語です。
画面には見えない部分の機能(バックエンドorサーバーサイドと呼びます。)を作るときに使う言語になります。
例:ログイン、ログアウト機能、データの取り込みなど。

#準備

  • AWSCloud9で新規でファイルを作成しましょう。
rudy test - AWS Cloud9 2019-03-07 09-22-49.png rudy test - AWS Cloud9 2019-03-07 09-25-41.png rudy test - AWS Cloud9 2019-02-11 11-31-34.png rudy test - AWS Cloud9 2019-03-07 09-38-29.png
  • ファイルの名前を変更し拡張子を「rb」にしましょう。
  • rbというのはRubyのファイルということなので間違えないようにしてください。
  • レッスンごとにファイルを分けて作成してください。
rudy test - AWS Cloud9 2019-02-09 23-32-59.png rudy test - AWS Cloud9 2019-02-09 23-36-43.png

ファイルが完成したので実際に学んでいきましょう。
ファイルの実行方法は例として ruby ruby_1.rbと記入します。

ファイルの保存方法について

rudy test - AWS Cloud9 2019-03-07 09-42-49.png

macの場合はcommand+sで保存できます。
windowsの場合はcontrol+sで保存ができます。

実際に保存するとどうなるかやってみましょう。
rudy test - AWS Cloud9 2019-03-07 09-48-10.png
これで保存できました。

保存を忘れると、修正した内容が出力されないので注意してください。

#Lesson1.Rubyに触れてみよう。
Lesson1のためruby_1.rbのファイルを作成してください。
###1-1 文字を出力してみよう。
Rubyのコードを実行してみましょう。ターミナルに文字を出力(表示)します。

ruby_1.rb
puts "こんにちは"

このように書くと「こんにちは」と出力されます。
rudy test - AWS Cloud9 2019-03-11 16-04-40.png

練習問題1-1

  • **「おはよう」puts**を使って出力してみましょう。

###1-2.数値の足し算と引き算をやっていきましょう。
先ほどの「puts "こんにちは"」を削除した状態でレッスンを進めましょう。
足し算には「+」、引き算には「-」の記号を用います。
数値と記号はすべて半角で記述します。
それでは実際にやってみましょう!

ファイルの実行方法はruby ruby_1.rbとターミナルに打ってください。

ruby_1.rb
puts 3
puts 5 + 5
puts 5 - 2 

このように記載してファイルを実行してみよう!
rudy test - AWS Cloud9 2019-03-11 15-37-27.png

練習問題1-2

  • 数値の**5puts**を使って出力してください。
  • 数値の**9+9の結果をputs**を使って出力してください。
  • 数値の**6-7の結果をputs**を使って出力してください。

###1-3.数値を文字列として出力しよう
プログラミングでは、例えば文字列の"3"と数値の3をコンピュータは別物として扱います。
文字列は""(ダブルクォーテーション)で囲みます。

それでは実際にやってみましょう!
ファイルの実行方法はruby ruby_1.rbとターミナルに打ってください。

ruby_1.rb
puts 5 + 5
puts "5 + 5"
rudy test - AWS Cloud9 2019-03-11 15-42-12.png このように `puts 5 + 5` は足し算されましたが、`puts "5 + 5"`は「5 + 5」という文章が出力されている状態です。

練習問題1-3

  • ①**+演算子を用いて計算式の結果が55**になるよう出力してください。
  • ②文字列の**66**を出力してください。

1-4.掛け算・割り算・余りの計算をやっていきましょう。

掛け算は「*」(アスタリスク)、割り算は「/」(スラッシュ)という記号を用います。また「%」を用いると、割り算の余りを計算できます。
それでは実際にやってみましょう!
ファイルの実行方法はruby ruby_1.rbとターミナルに打ってください。

ruby_1.rb
puts 5 * 5
puts 10 / 2
puts 6 % 4
rudy test - AWS Cloud9 2019-03-11 15-44-10.png このように一番上の`5 * 5`は掛け算され、真ん中の`10 / 2`は割り算され、一番下の`6 % 4`は余りが出力されました。

練習問題1-4

  • **5 × 4**の計算結果を出力してください。
  • **8 ÷ 4**の計算結果を出力してください。
  • **9 ÷ 5**の計算結果の余りを出力してください。

1-5.文字列を連結してみよう。

文字列同士に「+」記号を用いると、文字列同士を連結することができます。
文字列と数字は連結できないのでご注意ください。

ruby_1.rb
puts "文字列を" + "連結してみよう"
スクリーンショット 2019-11-03 10.14.36.png

練習問題1-5

  • 文字列の**「こんばんは!」「Ruby」**と文字を出力してください。

#Lesson2.変数について学んでいきましょう!
※レッスンが変わったのでruby_2.rbというファイルを作成し、実行してください。
変数とは、値を入れておく箱のようなものです。
入れる値に合わせて、変数の中身が変化するイメージです。
変数は、コードを書きやすくするもので、プログラミングでは必須の知識となります。

※数学の授業で出てきた「x」や「y」も変数です。
「x = 3, y = 2」のように数字を代入して使いましたが、同じことをプログラミングでも行います。

###2-1 変数の基礎について学んでいきましょう。
変数を使うためには、まず変数を定義する必要があります。
変数は、「 変数 = 値 」という形式で定義します。
この時、注意して欲しい点は上記の「=」は「等しい」という意味ではないところです。
上記の式は、「左の変数に右の値を入れる」という意味で、このことを代入と言います。

  • 変数は下記のように「変数名 = 値」で定義します。
  • ファイルの実行方法はruby ruby_2.rbをターミナルに打ってください。
ruby_2.rb
name = "太郎"

このように定義すると name という変数に「太郎」という文字列が定義されたことになります!
それでは実際に学んでいきましょう。

ruby_2.rb
name = "自分の名前"
puts name
rudy test - AWS Cloud9 2019-03-11 16-06-28.png このように`name`という変数の値の中身が出力されました。 では下記はどうでしょうか?
ruby_2.rb
name = "自分の名前"
puts "name"
rudy test - AWS Cloud9 2019-03-11 16-08-56.png ***このように変数にダブルクォーテーションをつけると変数名が出力されるので注意してください。***

練習問題2-1

  • 変数**text** に**「おはよう」**という文字列を代入し出力してください。

###2-2.変数の使い方について学んでいこう
変数を呼び出すと代入した値に「置き換わる」ので、文字列が入った変数は文字列とまったく同じように扱うことができます。
例えば文字列の連結であれば、文字列の入った変数と文字列の連結も、変数同士の連結も可能です。

###2-2-1.変数に文字を代入し連結してみよう。

ruby_2.rb
# 変数messageに「プログラミング」を代入します。
message = "プログラミング"
puts message + "学んでみよう"

# 変数textに「学んでみよう」を代入します。
text = "学んでみよう"

# 変数同士を連結して出力させます。
puts message + text
rudy test - AWS Cloud9 2019-03-11 16-13-24.png ***このように「文字列 + 変数」、「変数 + 変数」で連結することが可能です。***

練習問題2-2-1

  • ①変数に文字列を入れて出力しよう
  • message という変数に**Ruby**という文字を代入し出力してください。
  • ②変数と変数を連結して出力しよう。
  • 変数**text** にエンジニアという文字を代入し,①で作成した**messagetext**を連結して出力してください。

###2-2-2.変数に数値を代入してみよう。
2-2-1では変数に文字列を代入しましたが、今回は変数に数値を代入します。
では実際に学んでいきましょう。
ファイルの実行方法はruby ruby_2.rbとなります。

ruby_2.rb
num1 = 5
puts num1 + 4
num2 = 2
puts num1 + num2
rudy test - AWS Cloud9 2019-03-11 16-17-31.png

練習問題2-2-2

  • 変数に数値を入れて出力しよう
  • ①**num1** に**3**を代入し出力してください。
  • ②**num2** に**5**を代入し **num1 + num2**をした結果を出力してください。

###2-3.変数を上書きしてみよう。
変数は、一度代入した値を変更することもできます。
一度値を代入した変数に、その後再び値を代入すると、後に代入した値で変数の中身が上書きされます。

ruby_2.rb
#変数に代入された数値を出力
num1 = 5
puts num1
#変数に上書きされた数値を出力
num1 = 2
puts num1
rudy test - AWS Cloud9 2019-03-11 16-22-04.png このように一度代入した数値を上書きすることができます。
ruby_2.rb
num1 = 5
puts num1 
#代入した値に足し算を行い、上書きする。
num1 = num1 + 5
puts num1
スクリーンショット 2019-11-03 11.01.52.png ***このように一度定義した変数を再度代入することもできます。***

練習問題2-3

  • **num15**を代入し出力してください。
  • また、num1 に**3を上書きし、2**を引いて出力してください。

###2-4.変数を文字列に含めてみよう。
変数の値を文字列の中に含める方法があります。
文字列の中で、#{変数名}とすることで、変数を代入している値に置き換えて、文字列に含めることができます。

それでは実際に学んでいきましょう。

ruby_2.rb
age = 25
puts "今年で#{age}歳です"
name = "山田"
puts "私の名前は#{name}です"
rudy test - AWS Cloud9 2019-03-11 16-26-47.png ***このように文字列に変数を含めることができます。***

練習問題2-4

  • 変数に出身地名を代入し**「私の出身は〇〇です。」**と出力してください。

#Lesson3.条件分岐について学んでいきましょう。
※レッスンが変わったのでruby_3.rbというファイルを作成し、実行してください。

###3-1.条件分岐の基礎について学んでいきましょう。

このレッスンでは、「irb」というコマンドを使います。
これまでは、Rubyファイルを作成して、「ruby ファイル名」をターミナルに入力して実行していましたが、「irb」とは、「Interactive Ruby」の略でRubyの処理をターミナル上で実行できる機能のことです。
言葉だけでは、なかなか伝わり難いと思いますので、実際に使って見ていきましょう!
プログラミングを学んでいると「ある条件が成り立つときだけある処理を行う」という場面が出てきます。このようなプログラムを条件分岐と言います。
また条件分岐をする際にtruefalseという考え方をします。

  • trueとは条件が成立する事を表します。
  • falseとは条件が不成立する事を表します。

実際に試していきます。
先ほど説明した「irb」を使って実行してみましょう。
「irb」を使うとターミナルでRubyの処理を実行できます。
例)大小の比較する場合にこのように記載します。

irbを使ってみよう!(true)
#変数を定義する。
a = 1
b = 2
#aよりbが大きい場合
a < b
#条件が成り立つのでtrueになる。
rudy test - AWS Cloud9 2019-03-11 17-21-50.png
irbを使ってみよう!(false)
#変数を定義する。
a = 1
b = 2
#aよりbが小さい場合
a > b
#条件が成り立たないのでfalseになる。
rudy test - AWS Cloud9 2019-03-11 17-28-00.png **確認が終わったら`quit`とターミナルに入力してください。**

次はif文を使って条件分岐を見ていきましょう。
ここでは、「もしテストの点数が○点以上だったら処理を行う」という条件を使って条件分岐を見ていきます。
それでは実際に学んでいきましょう。

ruby_3.rb
score = 90
if score > 85
 puts "大変よくできました"
end

この場合scoreが85より大きいので条件が成り立ちます。
rudy test - AWS Cloud9 2019-03-11 17-35-12.png

ruby_3.rb
score = 50
if score > 85
 puts "大変よくできました"
end
  • この場合scoreが85より小さいので条件が成り立ちません。
rudy test - AWS Cloud9 2019-03-11 17-37-15.png **このように条件が成り立つ場合と成り立たない場合があります。その場合なにも出力されません**

###練習問題3-1

  • rain(雨)という変数に**65を代入し、雨が降る確率が60%以上の場合「傘を持っていきましょう」**と出力しましょう。

###3-2.それ以外の処理について学んでいきましょう。
例)3-1に引き続き、テストの点数がよかったら褒めるというのが条件分岐を例にしていきましょう。

ruby_3.rb
score = 50
if score > 85
 puts "大変よくできました"
else
 puts "がんばりましょう"
end
rudy test - AWS Cloud9 2019-03-11 17-41-53.png **この場合`score`の値が50なのでそれ以外の処理、つまり`else`になったので「頑張りましょう」と出力されました。** それではこの場合はどうでしょう?
ruby_3.rb
score = 80
if score > 85
 puts "大変よくできました"
elsif score > 75
 puts "よくできました"
else
 puts "がんばりましょう"
end
rudy test - AWS Cloud9 2019-03-11 17-43-34.png

###練習問題3-2

  • もし今日の雨の確率が60%なら**「傘をもっていきましょう」**
  • もし雨の確率が40%なら**「傘を持って行った方がいいですね」**
  • それ以外の場合**「傘はいりません」**と出力してください。
    ※変数にどの数値をいれても構いません。

###3-3.値が等しいか等しくないかの処理について学んでいきましょう。
ここでは比較演算子を用いて「等しい場合」「等しくない場合」の処理を見ていきます。

#aとbは等しい。
a == b
#aとbは等しくない。
a != b

この記号は数値だけでなく、文字列同士の比較にも使えます。

ruby_3.rb
score = 100
if score == 100
  puts "満点です"
end
rudy test - AWS Cloud9 2019-03-11 17-46-44.png - この場合`score`という変数の値に100が代入されていて`score == 100`は等しいので出力されます。
ruby_3.rb
score = 90
if score != 100
  puts "満点ではありません"
end
rudy test - AWS Cloud9 2019-03-11 17-53-08.png **このように上の図では、「満点です」と出力されましたが、下の図では「満点ではありません」と出力されました。**

###練習問題3-3

  • ①**aという変数に自分の名前を代入し、if文で正しかった場合「私の名前は〇〇です。」**と出力してください。
  • ②**bという変数に自分の名前を代入し、if文で「私の名前は〇〇ではありません。」**と出力してください。

#Lesson4.Rubyの基本について学んでいきましょう。
※レッスンが変わったのでruby_4.rbというファイルを作成し、実行してください。
「配列」「繰り返し処理」「ハッシュ」といった、プログラミングで必須の基礎知識があります。
これらは他の言語でも使うのでしっかり学んでください。

###4-1.配列について学んでいきましょう。
複数の値をまとめて管理するには、配列というものを用います。
配列は、[値1, 値2, 値3]のように作ります。配列に入っているそれぞれの値のことを要素と呼びます。
配列を使うと、複数の文字列や数値をまとめて書くことができます。

#文字列がはいった配列
["Tanaka","Yamada","Kubo"]
#数値が入った配列
[21,69,169]

このように文字列が入った配列と数値が入った配列があります。
配列を変数に代入します。

ruby_4.rb
names = ["Tanaka","Yamada","Kubo"]
puts names

image.png
このようにnamesという変数に「Tanaka,Yamada,Kubo」という文字列が代入されました。
配列も1つの値なので、変数に代入することができます。
配列を代入する変数名は慣習上、複数形にすることが多いので覚えておきましょう。

###練習問題4-1

  • **countriesという変数に「日本、アメリカ、イタリア」**と代入し、出力してみましょう。

###4-2.配列の要素を取り出してみましょう。
配列の各要素は、配列[インデックス番号]とすることで用いることができます。
インデックス番号は最初に入っている値が0番目と数えられます。

ruby_4.rb
names = ["Tanaka","Yamada","Kubo"]

puts names[0]

この場合0番目に入っている「Tanaka」が出力される
rudy test - AWS Cloud9 2019-03-11 18-01-46.png
####変数の場合と同様に、配列の要素の値も変数展開を用いて文字列の中に含めることができます。

ruby_4.rb
names = ["Tanaka","Yamada","Kubo"]
puts "私の名前は#{names[0]}です"
rudy test - AWS Cloud9 2019-03-11 18-03-06.png **このように文字列の中にインデックスの[0]番目を入れて出力することができます。**

###練習問題4-2

  • **countries**という変数に「日本、アメリカ、イタリア」と代入し、配列のインデックスの番号を指定して「私はイタリア出身です。」となるように出力してください。

###4-3.繰り返し処理について学んでいきましょう。
繰り返し処理には、each文というものを使います。
each文を使うと、配列の要素を順番に取り出して処理を行うことができます。

配列.each do|変数名|
 #実行したい処理
end

「|」で囲まれた変数に配列の要素が1つずつ入っていき、その上でeach文の中の処理が実行されていきます。
each文内の変数名(name)は好きな名前をつけられますが、配列の変数名(names)の単数形にすることが慣習上多いです。

ruby_4.rb
names = ["Tanaka","Yamada","Kubo"]
names.each do|name|
 puts name
end
rudy test - AWS Cloud9 2019-03-11 18-06-21.png - このように`names`という配列の中に入っている値を出力することができます。

###練習問題4-3

  • studys という変数に**「国語、数学、体育」という文字列をeach文で「私は〇〇が好きです」**と出力してみましょう。

#Lesson5.ハッシュについて学んでいきましょう。
※レッスンが変わったのでruby_5.rbというファイルを作成し、実行してください。

複数の値をまとめて管理する方法としては、配列の他にもハッシュというものがあります。
配列は複数の値を並べて管理するのに対して、ハッシュはそれぞれの値にキーと呼ばれる名前をつけてペアで管理します。
ザックリ説明すると、「ある値を入力すると、適切な値(ハッシュ値)を返してくれる」機能です。
文章だけだとイメージし難いので、以下の配列との違いを見てみましょう。

#配列の場合
[値1,値2]
#ハッシュの場合
{キー1 => 値1,キー2 => 値2}
→キー1を入力することで、値1が返される、キー2を入力することで、値2が返されるという構造になっています。

このように配列と書き方が似ているのがハッシュです。

###5-1.ハッシュに変数を代入してみよう。
ハッシュも1つの値なので、配列と同じで変数に代入し出力することができます。
それでは実際に代入して出力してみましょう。

ruby_5.rb
user = {"name" => "Kida","age" => 29}
puts user
rudy test - AWS Cloud9 2019-03-11 18-15-00.png **このように`user`という変数に代入した値を出力できます。** また`name`に入っていた値だけ取得したい場合は、このように書きます。
ruby_5.rb
user = {"name" => "Kida","age" => 29}
puts user["name"]
rudy test - AWS Cloud9 2019-03-11 18-16-53.png - 配列の場合はインデックスの番号で指定して出力できましたが、ハッシュの場合は出力したいキーを指定して出力できます。

###練習問題5-1

  • 上記と同じような形で自分の名前と性別を出力してください。

###5-2.ハッシュに変数を上書きしてみよう。
ハッシュ[キー] = 値と書くことで、キーと対応している値を更新することができます。
5-1ではuserという変数にそれぞれ値が入っていましたが、userを上書きしたいと思います。

ruby_5.rb
user = {"name" => "Kida","age" => 29}
puts user
#userを上書きする。
user["name"] = "Yamada"
puts user
rudy test - AWS Cloud9 2019-03-11 18-26-18.png このように値を上書きできます。

###練習問題5-2
上記のようにage(年齢)を設定していますが、文字列の漢数字で上書きしてください。

###5-3.ハッシュに要素を追加してみよう!
ハッシュ[新しいキー] = 値と書くことで、ハッシュに新しい要素を追加することができます。ただし、ハッシュにすでにあるキーを指定すると、要素の追加ではなく更新になってしまうので注意しましょう。

ruby_5.rb
user = {"name" => "Kida","age" => 29}
puts user
user["country"] = "Japan"
puts user
rudy test - AWS Cloud9 2019-03-11 18-28-59.png - このように`user`要素を追加することができます。

###練習問題5-3

  • 上記のように性別を追加してみましょう。

#Lesson6.シンボルについて学んで行きましょう。
※レッスンが変わったのでruby_6.rbというファイルを作成し、実行してください。
シンボルとは、文字を「ダブルクォーテーション(")」や「シングルクォーテーション(')」で囲む代わりに、コロン(:)を付けた書き方のことを言います。
(稀に後ろにコロンを書く場合もあります。)
ハッシュのキーとしてよく使われるため、今回もハッシュを用いてシンボルの使い方を見ていきましょう。

シンボルの書き方
以下の様にコロン(:)を前置きして表記します。
:name

###6-1.シンボルを使って値を出力してみましょう。

ruby_6.rb
#キーに文字列を用いた書き方
{"name" => "Kida","age" => 29}
#キーにシンボルを用いた書き方
{:name => "YAMADA", :age => 29}

このように2通りの記載方法があります。
※どちらもハッシュの記載方法なので間違えないようにしましょう。
それでは変数に代入してみましょう。

ruby_6.rb
user = {:name => "YAMADA", :age => 29}
puts user
rudy test - AWS Cloud9 2019-03-11 18-41-51.png **このように`user`という変数の中身を出力できます。**

###練習問題6−1

  • 上記のように**user**という変数で自分の名前と年齢を出力してみましょう。

###6-2.シンボルを使って要素のみ値を出力してみましょう。

  • 6-1ではuserという変数を出力しましたが、今回はuserに入っている変数の:nameのみ出力してきましょう!
ruby_6.rb
user = {:name => "YAMADA", :age => 29}
puts user[:name]
rudy test - AWS Cloud9 2019-03-11 18-45-18.png **このように`user`という変数のKeyが[:name]を指定しているので「YAMADA」が出力される。**

###練習問題6−2

  • **user**という変数を使い自分の名前、年齢、性別を設定し、性別のみ出力してみましょう。

###6-3.ハッシュのキーにシンボルを用いた書き方を学んでいきましょう。
ハッシュのキーにシンボルを用いるときには、省略した書き方をすることができます。具体的には「:key =>」を「key:」というように省略することができます。

{:name => "YAMADA", :age => 29}
#このように書き換えることができる
{name: "YAMADA", age: 29}
  • では実際に書き換えて出力してみましょう。
ruby_6.rb
user = {name: "YAMADA", age: 29}
puts user
rudy test - AWS Cloud9 2019-03-11 18-50-42.png ※書き方が違っても出力結果が同じという事を覚えておいてください。

###練習問題6-3

  • キーをシンボルに書き換えて**country**を出力してください。
user = {:name => "YAMADA", :country => "JAPAN", :age => 29}

#Lesson7.nilについて学んでいきましょう。
※レッスンが変わったのでruby_7.rbというファイルを作成し、実行してください。
「nil」とは、「値が空である」事を指します。
ここまで、ハッシュ[キー]とすることでハッシュの値を取得してきました。
では、ハッシュに存在しないキーを指定すると、値はどうなるでしょうか?

  • 存在しない「:weight」というキーの値を表示しようとした場合
ruby_7.rb
user = {name: "YAMADA", age: 29}
puts user[:weight]
rudy test - AWS Cloud9 2019-03-11 18-57-05.png このようにコンソールに何も表示されません。 - これは単純に「user[:weight]」の値が「何もない」ためです。 **ハッシュから存在しないキーの値を取り出した時の「何もない」という値は、Rubyでは「nil」(読み方:ニル)と表現されます。 「nil」は「何もない」という意味なので、puts(出力)しても何も表示されません。**
ruby_7.rb
puts nil
rudy test - AWS Cloud9 2019-03-11 19-00-27.png putsで出力しようとしても値が無いので表示されません

###7-1.条件分岐をするなかでのnilについて学んできましょう!
これまでは学習した内容では、ifの条件がtrueであれば実行し、falseであれば実行しない、というように学んでいました。
実は、ifの条件には、真偽値(trueとfalse)以外も使うことができます。Rubyでは、ifの条件に真偽値以外を用いたとき、それがnilであればfalseとして扱われ、それ以外はtrueとして扱われます。

実際の使い方を見ていきましょう。

  • trueの場合
ruby_7.rb
user = {name: "YAMADA", age: 29}
if user[:name]
 puts "#{user[:name]}さんは#{user[:age]}歳です"
else
 puts "名前は秘密です。年齢は#{user[:age]}歳です"
end
rudy test - AWS Cloud9 2019-03-11 19-02-09.png
  • falseの場合
ruby_7.rb
user = {age: 29}
if user[:name]
 puts "#{user[:name]}さんは#{user[:age]}歳です"
else
 puts "名前は秘密です。年齢は#{user[:age]}歳です"
end
rudy test - AWS Cloud9 2019-03-11 19-03-44.png `:name`に値が入っていないので`false`となり、`else`の処理が実行されています。

###練習問題7-1

  • ハッシュ**example** を定義し、キー**name**、バリューで「ご自身のお名前」を設定して、ハッシュにないprefを条件で設定し、nilになるように条件を書いて出力してみましょう!
  • trueのときは**「私の名前は〇〇です。東京出身です。」**
  • falseのときは**「私の名前は〇〇です。神奈川出身です。」**と設定し今回はnilを出力してみましょう。

#Lesson8.配列の要素にハッシュを入れてみましょう。
※レッスンが変わったのでruby_8.rbというファイルを作成し、実行してください。
配列の要素には、文字列や数値だけでなく、ハッシュも使うことができます。下記のように記載することができます。

[ {キー1:値1},{キー2:値2} ]

このように配列の中にハッシュを使うことができます。

###8-1.配列の要素を確認してみよう。
配列の要素には、先頭からインデックス番号が割り振られていることを思い出してください。
インデックスの0番目、つまり{name: "YAMADA", age: 29}を出力したいと思います。

ruby_8.rb
user = [{name: "YAMADA", age: 29}, #インデックス[0]
        {name: "KIDA", age: 35}    #インデックス[1]
       ]
puts user[0]
rudy test - AWS Cloud9 2019-03-11 19-08-43.png

###練習問題8-1

  • 上記のように配列の要素を3つ作成し、インデックスの**[2]**を出力してください。

###8-2.配列の要素を変数に代入してハッシュの値を出力しましょう。
配列[インデックス番号]でハッシュを用いることができるので、そのハッシュを代入した変数を使って、変数[キー]とすることでハッシュの要素の値することができます。

ruby_8.rb
user = [{name: "YAMADA", age: 29}, #インデックス[0]
        {name: "KIDA", age: 35}    #インデックス[1]
       ]
user = user[1]
puts user[:name]
rudy test - AWS Cloud9 2019-03-11 19-10-20.png また上記を短く書くこともできます。
ruby_8.rb
user = [{name: "YAMADA", age: 29}, #インデックス[0]
        {name: "KIDA", age: 35}    #インデックス[1]
       ]
puts user[1][:name]
rudy test - AWS Cloud9 2019-03-11 19-11-21.png **どちらでも出力結果が同じなのでわかりやすい方を使ってください。 ただ初心者は最初の書き方をおすすめします!**

###練習問題8-2

  • 上記のような配列に要素を1つ追加し、**0**番目のnameキーの要素を出力してください。

###8-3.配列をeach文を使い出力してみましょう。
ハッシュが値の配列でeachを使うとどうなるでしょうか。

  • 基本的に似ている考え方です。
  • 変数に、配列の各要素が順番に代入されます。
ruby_8.rb
users = [{name: "YAMADA", age: 29},
         {name: "KIDA", age: 35}
        ]
users.each do |user|
  puts user
end
rudy test - AWS Cloud9 2019-03-11 19-22-03.png

###練習問題8-3

  • 上記のような配列に要素を1つ追加し、要素を出力してください。

Rubyについて、学んでみていかがでしたか?
ここで学んだことと生かして今後も頑張っていきましょう!
お疲れ様でした。

続きのRubyについて学んでいこう2です
関数について説明されてますので、よろしかったらご参照ください

https://qiita.com/Tech_Leaders/private/06d6acbdf66c51f8788e

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