Ruby入門


#第１章　プログラミング言語Rubyとは

##Rubyとは
Rubyは**オブジェクト指向スクリプト言語**です。
オブジェクト指向とは、**プログラムを「オブジェクト（もの）同士の相互作用」とみなす考え方**です。
スクリプト言語とは、**プログラムをテキストファイルのままで実行できる言語**のことです。

##Rubyプログラムを実行させる方法

大きく分けて３つあります。

①rubyコマンド-eオプションを指定してプログラムを直接書き、コマンドライン上から実行する方法

![スクリーンショット 2019-05-29 10.34.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/d274e24f-1241-4cbf-22cb-05ab129d3106.png)


②irbで対話的に実行する方法

![スクリーンショット 2019-05-29 10.35.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/664f9500-8f07-2e2d-a226-5e21f47b1554.png)


③Rubyプログラムが記述されたテキストファイルを指定して実行する方法

![スクリーンショット 2019-05-29 10.46.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/e56b4b7e-a616-f036-dac0-8a7733a4100e.png)
↓
![スクリーンショット 2019-05-29 10.48.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/f3b16e6a-6c3b-19f3-6e77-a6866dbbb40a.png)



#第２章　
##変数
変数とはデータにつけるラベルのようなものです。
**「変数名　＝　データ」**で表され、右辺のデータが左辺の変数名に代入されます。

![スクリーンショット 2019-05-28 21.18.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/a4602f9b-87be-0b71-7b46-052d3b946e07.png)

上記は　1 と出力されます。


また、変数は順次処理によって、出力結果が上書きされていきます。

![スクリーンショット 2019-05-28 21.21.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/2be435d6-4b06-2524-7be9-a9a78146e389.png)

上記は変数aに3が再代入されているため、3と出力されます。



#第３章

##配列
配列とは**複数のデータを１つにまとめたもの**で、*[要素1, 要素2, 要素3]*と表されます。
配列を使うことで複数のデータのまとまりを１つの変数で表現することができます。

![スクリーンショット 2019-05-28 21.41.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/e4f201bd-04ee-7965-8f78-7143fc98bd6b.png)
上記の出力結果は、*[apple, banana, cherry]*となります。


配列でデータをまとめ、まとめたデータは**添字**で取り出すことができます。
**配列[添字]**で表現してみましょう。

![スクリーンショット 2019-05-28 22.00.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/75d5ae00-d4f6-86f7-f1f5-e9ec3f4b31a2.png)

上記の出力結果は、*'cherry'*となります。




##ハッシュ
ハッシュとは**複数のデータをまとめて扱うもの**です。
配列との最大の違いは、添字に数値ではなく文字列を利用できることです。

ハッシュは*{ 'キー1'　=> 値1, 'キー2' => 値2, ...}*のようにキーと値のペアを記述して定義します。


![スクリーンショット 2019-05-28 22.18.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/a0e73d27-e92a-101a-d0a9-6016ba45fcce.png)
↓
![スクリーンショット 2019-05-28 22.19.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/187f4f5d-5e36-31ca-c244-79ccfd6492e6.png)


##第４章
##if

ifで、条件式が正しい場合に特定の処理を実行できます。

表記方法
![スクリーンショット 2019-05-29 11.09.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/a2bbdae0-d53d-ce96-48c8-8c6b20e41505.png)

例
![スクリーンショット 2019-05-29 4.15.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/63cd745f-cb79-740b-477f-785af9f2e95f.png)
↓
出力結果は2となります。

##case
case・・・複数の条件に対応する処理を実行するときに使います。

caseの他に*when,else,end*を使って記述します。
表記方法
![スクリーンショット 2019-05-29 11.12.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/803caef3-70ea-8d89-68d4-8f7ba719c8d7.png)

例
![スクリーンショット 2019-05-29 5.05.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/efcc3be2-6c9d-86d0-885e-8665804cfbc5.png)
↓
出力結果は"バナナです"となります。

#第５章
##times
timesメソッドを使うと、同じ処理を繰り返すことができます。

表記方法
![スクリーンショット 2019-05-29 9.54.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/c549118f-2cbf-2c9b-8909-32209611ba8d.png)

例
![スクリーンショット 2019-05-29 9.41.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/b9e23d17-a31f-cd4e-827b-5e9a9a4e8d39.png)

↓

![スクリーンショット 2019-05-29 9.42.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/25587b10-fd7a-3965-da9f-c1b1c3bd2750.png)

変数は0から数値-1まで繰り返しの度に増えます。



##each
eachメソッドは、それぞれの要素に対して繰り返し処理をすることができます。
timesメソッドとの違いは、繰り返しの回数を意識することなく繰り返し処理が可能なところです。


表記方法
![スクリーンショット 2019-05-29 10.02.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/db33b362-7623-b989-7708-65bcf723093b.png)


例
![スクリーンショット 2019-05-29 10.06.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/3d3bece1-f0e1-70f7-c9cc-f5153ba558f7.png)
↓

![スクリーンショット 2019-05-29 10.07.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/1f107c04-1b1e-1624-578b-c45c99046dd4.png)

##while
while式を使うと、条件に応じて処理を繰り返すことができます。
whileの性質上、繰り返し処理の結果、ずっと条件式がtrueにならない場合は処理が終わらなくなります。

表記方法
![スクリーンショット 2019-05-29 10.18.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/a3487bbf-10c8-4918-bd77-81565c2b20a1.png)

例
![スクリーンショット 2019-05-29 10.15.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/3975c1e2-cf44-4f43-4247-0db9dcf58679.png)

↓

![スクリーンショット 2019-05-29 10.16.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423914/4a1724e8-219e-bf5e-59fa-20ecbc8a8270.png)

##まとめ
より理解を深めて、簡潔にわかりやすく書けるように練習していきます。次回は、メソッド・クラスを中心にまとめたいと思います。