※ カリキュラムでは、Cloud9のターミナルを利用します。
まだ用意していない方は「AWS Cloud9を準備しよう」を参考に導入してください。
Rubyプログラムの実行方法を学ぼう
Rubyのプログラムを実行する方法には、「rubyコマンド」と「irbコマンド」があります。
rubyコマンドでプログラムを実行する方法は、前回の章で学びましたね。
Rubyファイルに書いたプログラムは、ruby Rubyのファイル
で実行できます。
1
2
# ruby 実行したいRubyのファイル
ruby sample.rb
この章では「irbコマンド」でRubyのプログラムを実行していくよ!
irbコマンド
irbコマンドを実行すると、直接プログラムを書いて実行できる環境が立ち上がります。そのため、rubyコマンドのようにRubyファイルを用意する必要がありません。
動画のようにターミナルにirb
と打ち込むだけで、起動することができます。
irbを起動させると、画像のように2.7.5 :001 >
が表示されます。この後にプログラムを直接書いて実行することができます。
※ 左側にある2.7.5は、Rubyのバージョンです。一致している必要はありません。
irbの方が手軽にプログラムを試すことができるね!
irbコマンドでプログラムを実行してみよう
それでは、実際にAWS Cloud9を使ってプログラムを実行してみましょう。
まずは、irbを起動させます。
irb
と打ち込んで、Enterキー(returnキー)を押してください。2.7.5 :001 >
の後に以下の内容を書いて、Enterキー(returnキー)を押してプログラムを実行してみましょう。1
puts "Hello"
実行すると、動画のように「Hello」とターミナルに出力されています。
puts "Hello"
は「Helloを出力させる」という意味だったので、プログラム通りに実行することができましたね。
=>
はプログラムの実行結果を示します。今の時点では理解する必要はありません。
irbの起動を終了させる
最後にirbの起動を終了させましょう。
irbを終了するには「exit」または「quit」と入力して、Enterキー(returnキー)を押します。
これでRubyプログラムの実行方法の説明は終わります。
結局どっちのコマンドでプログラムの実行をすれば良いんだろう
irbは手軽にプログラムを試せるけど、複数行あるプログラムの場合はRubyファイルに記述してrubyコマンドで実行しよう!
オブジェクト
Rubyで文字列や数値を作る方法や「オブジェクト」の概念について学びましょう。
文字列
Rubyで文字列(文字を意味する一列に並んだデータ)を作るには、基本的にシングルクォート('
)、もしくはダブルクォート(”
)で囲みます。
1
2
"ダブルクォートで囲ったデータは、文字列です。"
'シングルクォートで囲ったデータも文字列です。'
先ほどirbコマンドで試したputs "Hello"
の"Hello"
も文字列です。
このようにデータをシングルクォート、もしくはダブルクォートで囲むことによって文字列にすることができます。
文字をプログラムの中で表すには、文字列にすれば良いんだね
文字列を作ってみよう
それでは、irbを起動して文字列を作ってみましょう。
"Hello World"
と打ち込み、Enterキー(returnキー)を押しましょう。"Hello World"
は、文字列として認識されます。
Hello World
を打ち込んでみましょう。すると、上の動画のようにエラーが発生してしまいましたね。
このようにシングルクォート、もしくはダブルクォートで囲わない場合は、文字列として認識されないので注意しましょう。
数値
Rubyで数値(計算に利用できる数を表すデータ)を作るには、「数字」をシングルクォートやダブルクォートで囲むことなく、そのまま記述します。
1
1000 #数値
数字をシングルクォートやダブルクォートで囲むと文字列になるので注意してください。
1
"1000" #文字列
プログラムの中で数値を表すには、数字をそのまま記述すれば良いんだね
数値を作ってみよう
それでは、irbで数値を作ってみましょう。
12345
と打ち込み、Enterキー(returnキー)を押しましょう。すると、上の動画のようにエラーが発生することなく数値として認識されます。
オブジェクト指向
Rubyでは、「Rubyで扱うことができる全てのデータ(値)は、オブジェクトである」という特徴があります。
先ほどの文字列や数値もRubyで扱えるデータなので、「オブジェクト」として判断することができます。「文字列オブジェクト」「数値オブジェクト」と呼ばれたり、単に文字列、数値と省略して呼ばれることもあります。
現段階でオブジェクトを完全に理解することは難しいので「Rubyでは全ての値はオブジェクト」とだけ覚えておこう!
オブジェクトはクラスに属する
全てのオブジェクトは、何かしらのクラス(同じ特性をまとめてグループ化)に属しています。属するクラスによって、オブジェクトの種類が分けられます。
例えば、先ほどの文字列オブジェクトは「String」、数値オブジェクトは「Numeric」というクラスに属しています。
数値オブジェクトの場合は、もう少し細かくクラスが分けられます。
10
のような整数のオブジェクトは「Integerクラス」、10.5
のような浮動小数点数のオブジェクトは「Floatクラス」に属します。
オブジェクトのクラスを調べてみよう
オブジェクトがどのクラスに属しているのかは、classメソッドを使うことによって知ることができます。(※メソッドの使い方は、後述する「メソッド呼び出し」で説明します。)
それでは、文字列オブジェクトと数値オブジェクトのクラスを調べてみましょう。
1
"Hello World".class
1
1000.class
1
10.5.class
実行すると、動画のようにString
やInteger
、Float
が出力されますね。
このようにclassメソッドを使うと、文字列オブジェクトは「Stringクラス」、数値オブジェクトの整数は「Integerクラス」、浮動小数点数は「Floatクラス」に属すことがわかります。
Rubyに予め用意されているメソッド
Rubyには、メソッド(オブジェクトを操作する処理)と呼ばれる機能があります。
メソッドは、「Rubyに予め用意されているメソッド」と「ユーザが独自に定義できるメソッド」がありますが、ここでは前者の予め用意されているメソッドの使い方を説明します。
メソッド呼び出し
メソッドを利用するには、「対象のオブジェクト」と「実行したいメソッド名」をドット(.
)で繋ぎます。
1
オブジェクト.メソッド名
上記の指定によって、オブジェクトの操作が可能になります。
先ほど「classメソッド」を利用した際にも、対象のオブジェクトが属すクラスを調べることができました。
このようにメソッドを利用することで、対象のオブジェクトを操作することができます。
オブジェクトが利用できるメソッド
オブジェクトが利用できるメソッドは、オブジェクトが属すクラスによって決まります。
文字列オブジェクトは、Stringクラスに所属しています。そのため、Stringクラスで定義されるメソッドを利用することができます。数値オブジェクトも同様の考えです。
それでは、実際に手を動かしながら理解を深めていこう
文字列オブジェクトが利用できるメソッドを呼び出してみよう
文字列オブジェクトが利用できる「lengthメソッド」を呼び出してみましょう。
lengthメソッドは、文字列オブジェクトの文字数を返すメソッドです。
1
"Hello World".length
実行すると、動画のように"Hello World"
の文字数である11
を返します。
lengthメソッドは、Stringクラスに定義されるメソッドなので、文字列オブジェクトで利用することができます。
しかし、Numericクラスには定義されてないメソッドなので、Numericクラスに属す数値オブジェクトで呼び出すとエラーが発生します。
10.length
と実行してみましょう。上の動画のように数値オブジェクト(10
)に対して、lengthメソッドを呼び出すとエラーが発生します。
演算子
演算子と呼ばれる記号をプログラムで使うことで、基本的な計算をすることができます。
Rubyにはたくさんの種類の演算子がありますが、ここでは計算を行う算術演算子と値同士を比較できる比較演算子について学んでいきます。
算術演算子(四則演算と剰余演算)
Rubyも含めてプログラミング言語では、四則演算(足し算・引き算・掛け算・割り算)や剰余演算(割り算の余りを計算)などの基本的な計算を行うことができます。
Rubyでは、計算処理に以下の記号を使います。
記号(算術演算子) | 名前 | 例 | 意味 |
---|---|---|---|
+ | 足し算 | a + b | aにbを足す |
- | 引き算 | a - b | aからbを引く |
* | 掛け算 | a * b | aにbを掛ける |
/ | 割り算 | a / b | aをbで割る |
% | 剰余 | a % b | aをbで割った余り |
以下のように指定することで、数値を計算することができます。
1
数値オブジェクト 演算子 数値オブジェクト
数値同士を計算してみよう
それでは、irbを起動して数値同士を計算してみましょう。
1
10 + 5
1
10 - 5
1
10 * 5
1
10 / 5
1
10 % 5
実行すると、動画のように計算処理の結果が出力されます。
このように「+ -* /%」を使うことで、数値同士を計算することができます。
オブジェクト同士を「+」で連結してみよう
+
は単に足し算だけではなく、オブジェクト同士を連結することができます。
1
"abc" + "dfg"
実行すると、動画のように文字列同士が連結して"abcdfg"
が返ります。
それでは、文字列と数値も同じように+
で連結してみましょう。
1
"今年で" + 20 + "歳になります。"
実行すると、動画のようにエラーが発生します。
オブジェクトの種類が違う場合は、単に+
だけでは連結することができません。
文字列と数値を連結させるには、「to_sメソッド」で数値を文字列オブジェクトに変換する必要があります。
20.to_s
を実行してみましょう。実行すると、文字列オブジェクトである"20"
が返りますね。
それでは、先ほどのプログラムの20
を20.to_s
に修正して再度試してみましょう。
1
"今年で" + 20.to_s + "歳になります。"
実行すると、エラーが発生することなく連結することができましたね。
比較演算子
2つの値の大小関係を表すには、>
や<
の不等号を使うと学校で習いましたよね。
Rubyでも以下の記号を使うことで、値同士を比較して結果を得ることができます。
記号(比較演算子) | 例 | 条件 |
---|---|---|
== |
a == b |
aとbが等しい |
!= |
a != b |
aとbは等しくない |
> |
a > b |
aはbより大きい |
>= |
a >= b |
aはb以上 |
< |
a < b |
aはbより小さい |
<= |
a <= b |
aはb以下 |
上記の比較演算子を使う場合は、条件が正しければtrue
、条件が正しくなければfalse
が返ります。
比較演算子を使ってみよう
それでは、irbで比較演算子を使って値同士を比較してみよう。
1
10 == 10
1
10 != 10
1
10 > 5
1
10 < 5
実行すると、画像のような結果を得ることができます。
続いて、>
と>=
の違いについて確認していきましょう。
a > b
は「aはbより大きい」、a >= b
は「aはb以上」という意味ですが、この2つの違いはbを含むか含まないかという点です。
「5より大きい」という表現では、5は含みません。「5以上」という表現は5を含みます。
1
5 > 5
1
5 >= 5
上記を実行すると、画像のようにそれぞれfalse
とtrue
が返ります。
<
と<=
も同様の考えで、その値が含まれるか含まれないかの違いがあります。
〇〇以上(>=
)・〇〇以下(<=
)は、〇〇が含まれるってことだね
あとは、〇〇より小さい(>
)・〇〇より大きい(<
)は、〇〇が含まれないことも覚えておこう!
この記事のまとめ
- irbコマンドを実行すると、直接プログラムを書いて実行できる環境になる
- Rubyで扱うことができる全てのデータ(値)は、オブジェクトである
- メソッドとは、オブジェクトを操作する処理のこと
この記事で学んだことをTwitterに投稿して、アウトプットしよう!
Twitterの投稿画面に遷移します