Rubyの基礎

Ruby実行環境

Visual Studio Code(以下VSCode)でRubyが実行できるか確認します。

Ruby実行フォルダ

最初に、Rubyを実行するフォルダを準備します。 どのフォルダでもRubyのプログラムを実行できますが、ここでは、C:¥ruby_lecture¥codeフォルダを作成して、作業フォルダとします。

Working Folder

Rubyの実行環境

VSCodeを起動します。

提供しているRubyの実行環境の場合、C:¥ruby_lecture¥code.batをダブルクリックするとVSCodeが起動します。 また、作業フォルダはC:¥ruby_lecture¥codeに設定されています。

VSCode Open

メニューより、ファイル => フォルダを開くをクリックします。

VSCode Folder

C:¥ruby_lecture¥codeフォルダを選択して、フォルダの選択ボタンをクリックします。

VSCode Folder

VSCodeの左側のエクスプローラーcodeフォルダが表示されます。

VSCode Folder

ここには、Windowsのエクスプローラーと同様に、フォルダやファイルがツリー表示されます。

メニューより、ターミナル => 新しいターミナルをクリックします。

VSCode Terminal

VSCodeの下側にターミナル(コマンドプロンプト)が表示されます。

VSCode Terminal

Rubyが実行できるか、確認します。 ターミナルに

ruby -v

と入力して、Enterキーを押します。Rubyのバージョンが表示されます。

VSCode Ruby Version

Hello World

Hello Worldと画面に出力する簡単なRubyのプログラムを書いて実行します。

プログラムファイル作成

エクスプローラーのcodeの右側にマウスカーソルを移動させると表示される、新しいファイルアイコンをクリックします。

VSCode New File

ファイル名の入力状態になりますので、hello.rbと入力して、Enterキーを押します。

VSCode New File

プログラムファイルは、テキストファイルです。拡張子は何でも(.txtでも)よいですが、Rubyのプログラムだと分かるように慣例的に.rbとします。

hello.rbファイルが作成され、hello.rbファイルが開きます。

VSCode New File

hello.rbファイルに、

puts "Hello World!"

と入力します。

VSCode Program

メニューより、ファイル => 保存をクリックして保存します。

VSCode Program

ファイルの保存は、ショートカットキー(Ctrl + s:コントロールキーを押しながらsキーを押す)を使用して保存するやり方が簡単です。

ファイル名のTabの右側に丸(●)がある場合は、変更が保存されていない状態です。保存するとバッテン(✕)になります。

その他のショートカットキー
コピー:Ctrl + c
ペースト:Ctrl + v

プログラムの実行

Rubyのプログラムを実行するには、rubyコマンドを使います。rubyの後に半角スペース、その後にプログラムファイル名を入力して実行します。

ターミナルで、

ruby hello.rb

と入力して、Enterキーを押します。

ターミナルに、

Hello World!

と表示されているのを確認します。

VSCode Program

コマンドプロンプトで、ruby hまで入力して、Tabキーを押すと、ruby hello.rbとファイル名を保管してくれます。

次に、hello.rbファイルを、

puts "Hello World!ハロールビー!"

と編集して、保存してください。

同じようにターミナルで、

ruby hello.rb

と入力して、Enterキーを押します。

ターミナルに、

Hello World!ハロールビー!

と表示されているのを確認します。

VSCode Program

コマンドプロンプトで、上矢印キーを押すと、過去のコマンド入力が表示されます(押すたびにさかのぼります)。逆に下矢印キーを押すと進みます。

また、プログラムを、

puts "Hello World!"
puts "ハロールビー!"
puts "私はRubyが好きです。"

など、文字を変えたり、行を増やしてみてください。

putsは画面(標準出力)に文字(と改行)を表示する関数のようなもの(Rubyではメソッドと呼びます)です。
また、文字(文字列)は、ダブルクォーテーション"で囲みます。

計算と入出力

入力した数値を計算して出力するプログラムを書いて実行します。

数値の出力

calculation.rbという名前のファイルを作成します。

VSCode calculation.rb

以下のように、putsの後に、足し算を記入します。

puts 5 + 3

Rubyは、全角・半角、大文字・小文字を区別します。大文字の数字は数値として扱いません。

プログラムを実行します。

ruby calculation.rb

計算結果が表示されます。

8
VSCode calculation.rb

5 + 3 = 8の様に表示させたいと思います。以下のように書き換えてください。

puts 5 + 3 = 8

同様にプログラムを実行すると、エラーになりました。

syntax error, unexpected '=', expecting end-of-input
puts 5 + 3 = 8
VSCode calculation.rb

syntax errorは、書き方がRubyの規則に合ってない場合に表示されるエラーです。

5 + 3 = 8の全体を"で囲い、文字列にします。以下のように書き換えてください。

puts "5 + 3 = 8"

プログラムを実行すると、

5 + 3 = 8

と表示されました。

VSCode calculation.rb

まとめると、

  • "で囲んだ文字(文字列と言います)は表示できる。
  • 計算式は結果(数値)が表示される。 となります。

式と結果を両方表示させたい場合は、どうしたらよいでしょうか。

Rubyでは、文字列の中に数値(計算結果)を埋め込むことができます。以下のように書き換えてください。

puts "5 + 3 = #{5 + 3}"

プログラムを実行すると、

5 + 3 = 8

エラーなく表示されます。

VSCode calculation.rb

#{式}式展開と呼びます。の計算結果を文字列に変換します。

変数と代入

Rubyでは、数学と同様に変数を扱うことができます。ここでは、xとyを使います。

変数の代入は、変数 = 値という書き方をします(左辺に変数、右辺に値や計算結果など)。

以下のように書き換えてください。

x = 5
y = 3
puts "#{x} + #{y} = #{x + y}"

Rubyは、プログラムファイルの上の行から順番に処理を行います。

実行すると、

5 + 3 = 8

同じ結果が表示されます。

VSCode calculation.rb

Rubyでは、変数もとして扱うことができます。変数の演算は、中の数値に対して行われます。

x、yの値を実数に書き換えます。

x = 3.1415
y = 1.2
puts "#{x} + #{y} = #{x + y}"

プログラムを実行すると、

3.1415 + 1.2 = 4.3415

正しい実数の計算結果が表示されます。

VSCode calculation.rb

キー入力

変数x、yは、プログラム中で固定の値を代入していました。今度は、キーボードから入力した値を計算して出力するようにします。

Rubyには、キーボードからの入力を受け付けるメソッドgetsがあります。このメソッドは、Enterキーが押されるまでのキー入力を記憶し、Enterキーが押された時にキー入力を(改行を含んだ)文字列として返します。

改行は、改行コードという特殊な文字(Windowsの場合は¥r¥n)として扱われます。改行コードが不要な場合は、文字列末尾の改行コードを削除するメソッドchompを使います。

また、ここでは、文字列ではなく数値として扱いたいので、文字列を数値(整数)に変換するメソッドto_iを使います。

プログラムを、以下のように書き換えてください。

x = gets
x = x.chomp
x = x.to_i

y = gets
y = y.chomp
y = y.to_i

puts "#{x} + #{y} = #{x + y}"

プログラムを実行してみます。数値(整数)を入力してEnterキーを押します。

5
3
5 + 3 = 8

正しい計算結果が表示されます。

VSCode calculation.rb

このプログラムでは、プログラムが止まっているように見えるので、プログラムの意図を知らない人は、何をしてよいか分かりません。

説明を表示するように修正します。

プログラムを、以下のように書き換えてください。

puts "このプログラムは整数の加算(x + y)を計算して結果を表示します。"

print "変数xの値(整数)を入力してください:"
x = gets
x = x.chomp
x = x.to_i

print "変数yの値(整数)を入力してください:"
y = gets
y = y.chomp
y = y.to_i

puts "#{x} + #{y} = #{x + y}"

printメソッドは、putsメソッドと同じく、文字列を出力しますが、最後に改行をつけません。

VSCode calculation.rb

説明が表示されるので、分かりやすいプログラムになりました。

メソッド

メソッドとは、数学で言う関数のようなもので、処理をした結果(値など)を返します。

putsメソッド

  • 処理:文字列(改行付き)を、画面に表示する。
  • 結果:なし

getsメソッド

  • 処理:キーボード入力を記憶する。
  • 結果:記憶した文字列(改行付き)

Rubyのメソッドには、ものに対して働きかける(処理をする)ものがあります。 書式は、もの.メソッドのように、.(ドット)でつなぎます。 ここで言うものを、オブジェクトと呼びます。

chompメソッド

  • 処理:オブジェクト(文字列)の行末の改行を削除する。
  • 結果:処理結果(文字列)

to_iメソッド

  • 処理:オブジェクト(文字列)を整数に変換する。
  • 結果:処理結果(整数)

実は、putsメソッドやgetsメソッドは、オブジェクト.(ドット)が省略されています。 このように、単独で使うメソッドは関数的メソッドと呼びます。

また、メソッドは結合して使うこともできます。上記のプログラムは、以下のように短く書き直すことができます。

puts "このプログラムは整数の加算(x + y)を計算して結果を表示します。"

print "変数xの値(整数)を入力してください:"
x = gets.chomp.to_i

print "変数yの値(整数)を入力してください:"
y = gets.chomp.to_i

puts "#{x} + #{y} = #{x + y}"

プログラムを実行してみると、同じように動作します。

コメント

プログラム中に説明やメモを書くことができます。それをコメントと呼びます。Rubyは、コメントを無視して処理を進めます。

#(ハッシュ)を書くと、同じ行のそれ以降はコメントとして扱われます。また、行頭に書いた=begin=endに囲まれた行(複数行)はコメントとして扱われます。

# これは1行すべてコメントです。
x = 5 # 行の途中からコメントにもできます。

=begin
この間は、
すべて
コメント
に
なります。
=end

y = 3

それでは、上記のプログラムにプログラムの説明をコメントで入れます。

# プログラム名:加算プログラム(calculation.rb)
# 説明:整数xとyを入力し、式とともに結果を出力する。

puts "このプログラムは整数の加算(x + y)を計算して結果を表示します。"

print "変数xの値(整数)を入力してください:"
x = gets.chomp.to_i

print "変数yの値(整数)を入力してください:"
y = gets.chomp.to_i

puts "#{x} + #{y} = #{x + y}"
VSCode calculation.rb

プログラムを実行してください。コメントは無視されるので、問題なく実行されます。

更新日: