Rubyの基礎
国産プログラミング言語「Ruby(ルビー)」の基礎についてまとめてみる(`・ω・′ )
自分用まとめなので、本職のプログラマの方がみると間違いがあるかもしれませんが、全くの初心者からのスタートなのでRubyって何?ってレベルの方には参考になるように書いてみます。
なお、環境は Mac OS X Marvericks + CotEditor でやってます(・ω・)
Ruby実行環境のインストール
まずはRubyをパソコン上で実行できる環境をインストールします。htmlとかJavaScriptであれば、メモ帳などでサクッと書いて拡張子を.jsや.htmlに変更するだけで実行できたりしますが、Rubyはそうはいかないのです(・ω・)
ダウンロード(Windows)
rubyinstaller.org/downloads/からダウンロードします。
数字が大きいやつを入れる感じ。OSが32bitなら一番上、64bitなら(x64)が付いた方をダウンロード。
ダウンロード(Mac)
OS X Marvericksなら標準でインストールされてる模様(・ω・)
それ以前のバージョンの場合は「Mac Ruby インストール」などで検索して調べてみてください。ちなみにやたら面倒くさいので結構大変ですが、Ruby on Rails(ルビーオンレイルズ)っていうフレームワークの開発環境を構築する場合はいずれにせよやらなければいけないみたい(´・ω・`)
テキスト・エディタをインストール
実際にプログラムを打ち込んでいくテキストエディタを用意します。Windowsのメモ帳やMacのメモは色分けもされず不向きなので、プログラミングに適したエディタを選ぶと効率が圧倒的に良いと思います。
WindowsならMery、MacならCotEditorとかかな(・ω・)ノ
プログラムを保存する場所を作る
WindowsでもMacでも、(ユーザ名)フォルダの直下にRubyフォルダを作ります。
OS | ディレクトリ |
---|---|
Windows | C:¥ユーザ¥(ユーザー名)¥ruby |
Mac | /ユーザ/(ユーザ名)/ruby |
早速プログラムを作ってみる
テキストエディタを開いて、次のプログラムを入力してみます。puts( ) は ( ) 内を表示させる処理を行います。これを puts メソッド(処理)といい、( ) 内は引数(ひきすう)と呼ばれます。文字列は ” “(ダブルクオーテーション)で囲うのがルールですので、文字列を表示する場合は puts(“ここに文字を書く“) とします。
なお、メソッドは「処理をひとまとめにしたもの」くらいの意味です。
puts(“Rubyですよ”)
そして、test1.rbというファイル名で保存します。拡張子は .txt ではなく .rb にするのがポイント。文字コードはUTF-8で保存します。
今作ったプログラムを表示してみる
Windowsならスタートメニュー→アクセサリの中にあるコマンドプロンプト、Macならlaunchpad→その他の中にあるターミナルを起動します。
まずはrubyフォルダに移動するため、次のコマンドを入力(入力後はEnterで確定します)。
cd ruby
次に、ファイルを確認します。Windowsなら
dir
Macなら
ls
と入力します。rubydesuyo.rbが表示されるはず。
今度はrubydesuyo.rbを実行します。次のコマンドを入力。
ruby rubydesuyo.rb
「rubyですよ」と表示されればOK!
計算する
文字列ではなく数値を表示する場合は””で囲みません。puts(1)だと「1」と表示されます。なお、プログラミングでは式を計算することを「式を評価する」といい、式の計算結果を戻り値(もどりね)といいます。
数値を計算する場合は、次の通りです。puts(1+2)なら3と表示します。
計算 | 演算子 | 計算例 | 表示 |
---|---|---|---|
足し算 | + | 3+3 | 6 |
引き算 | – | 3-3 | 0 |
掛け算 | * | 3*3 | 9 |
割り算 | / | 6.0/2 | 3 |
割り算の計算例の分子が6.0と小数点をつけていますが、これには理由があります。Rubyでは整数同士の割り算では結果を整数(小数点以下切り捨て)で出すので、
10/4
この場合、「2.5」ではなく「2」になってしまいます。2.5と表示させるには少なくとも分母と分子のどちらかが小数点を含めて
10.0/4
もしくは
10/4.0
とします。
整数同士の足し算・引き算・掛け算では結果に小数点は発生しないので、割り算だけ注意して下さい(`・ω・′ )
プログラムにコメント(メモ)を書く
今書いているプログラムに説明を加えたいとき、#(シャープ)を付け加えることでその右側にコメントを加える事ができます。実際のプログラムの動作に影響は出ません。
#この部分がコメントになる
右側がその行だけコメントとなります。次の行には反映されません。例えば次のように使用します。緑色の部分はコメントになり、プログラムの動作に影響を与えません。
#計算して表示
puts(5*3) #15と表示される
複数行にわたってコメントを入れる場合は行頭に=beginと=endを加え、その間にコメントを記入します。
=begin
このプログラムは
挨拶を表示します
=end
puts(“こんにちは”)
この場合、「こんにちは」とだけ表示されます(・ω・)ノ
irb(Interactive Ruby)を使う
わざわざ1行プログラムを作って.rbに変換してruby *.rbとして実行するのは面倒なので、ターミナル(コマンドプロンプト)の中でまるで会話(Interactive)をするようにRubyを実行してみましょう(ノ)・ω・(ヾ)
Macでirbを使う
次のコマンドを実行。
irb
Windowsでirbを使う
「スタートメニュー」→「Ruby 〜」→「対話的 Ruby」を起動。
irbを使ってみる
puts(“こんにちは”)
と入力すれば「こんにちは」と表示されます。
puts(4*3)
と入力すれば「12」と表示されます。
Rubyがどんな風に動くかちょこちょこテストして動きを勉強するには最適です(・ω・)
ちなみに、表示された後に
=> nil
という一行が入りますが特に気にする必要はありません(`・ω・′ )
irbを楽しんだら次のコマンドで終了させます。
quit
irbですら面倒なときは
次のコマンドを使います。今度は‘ ‘(シングルクォーテーション)で囲みます。
ruby -e ‘●’
例えば、
ruby -e ‘puts(1+2)’
と入力すれば「3」と表示されます。
変数を使いこなす
やや難易度が上がりますが、変数(へんすう)を使ってみます(・ω・)
「高さ」や「重さ」のようにいろいろ変化するものを変数として扱います。変数に値を代入するには、=(イコール)で結びます。ここで重要なのが、=(イコール)は「左辺の変数に右辺の値を代入する」という使い方で、数学とは扱いが異なる点です。
takasa = 5
puts(takasa)
この場合、1行目で「takasa(高さ)」という変数に5という値を代入したということになります。2行目は変数「takasa」の値を表示しますので、「5」と表示されることになります。
その後、
takasa = 6
と入力した場合、「takasa」は5→6と書き換えられます。したがって、
takasa=5
takasa=6
puts(takasa)
とした場合、このプログラムは「6」と表示します。必要に応じてバンバン書き換えていけるのが変数です(・ω・)
変数同士を計算することもできます。
price=108
pics=10
puts(price*pics)
この場合、価格×個数である 108×10 の計算結果「1080」を表示します。
定数
変数と異なり一度代入した値のままになります。頭文字をアルファベットの大文字にします。
Syouhizei=1.08
zeinuki=100
puts(zeinuki*Syouhizei)
「108.0」と表示されます。うーむ、でも108.0って税込価格なのか税抜価格なのかわかりにくいですね。それに小数点はいらないですね(´・ω・`)
というわけで「税込み108円」と表示してみましょう(・ω・)ノ
puts()の表示内容の結合
puts()の中身は ,(カンマ)でくっつけることができます。「”文字列”」と「数値」をくっつけることもできます(文字列は””でくくるのを忘れずに)。
price=108
puts(“価格は”,price,“円です”)
価格は
108円
です
と表示されます。putsだと,(カンマ)の前後に改行が入るので不便だ(´・ω・`)
そこでprint()を使います。前後に改行が入りません。
price=108
print(“価格は”,price,“円です”)
今度は「価格は108円です」と表示されましたね(ノ)・ω・(ヾ)
ただし、print()は連続して使用すると続けて表示されます。例えば、
print(3+3)
print(5+5)
とした場合、6と10が並んで「610」と表示されます。別の数字になってしまう(′・ω・`)
というわけで、print()の中身の最後に \n(改行)を付け加えます。
print(3+3,”\n”)
print(5+5,”\n”)
これで
6
10
と表示されます(・ω・)ノ
では、先ほどのプログラムを「税込み108円」と表示してみましょう(`・ω・′ )
Syouhizei=1.08
zeinuki=100
print(“税込み”,zeinuki*Syouhizei,”円\n”)
「税込み108.0円」と表示されました。あと一歩!整数で表示したいですね。Rubyでは小数点(浮動小数点数)が混じった計算結果には小数点が付いてしまいます。そこで、zeinuki*Syouhizeiの計算結果を .round を使って四捨五入します。
Syouhizei=1.08
zeinuki=100
print(“税込み”,(zeinuki*Syouhizei).round,”円\n”)
これで「税込み108円」と表示されました(ノ)・ω・(ヾ)
print()がごちゃっとしたので、次のように書き換えるとすっきりします。
Syouhizei=1.08
zeinuki=100
zeikomi=zeinuki*Syouhizei
zeikomi=zeikomi.round #税込金額を四捨五入
print(“税込み”,zeikomi,”円\n”)
一度税込金額を計算し、改めてzeikomiの変数を四捨五入して再びzeikomiに代入し、print()で表示させています。こうしたほうが処理の手順がわかりやすくなります(・ω・)
print()の中身もすっきりさせてみましょう。変数をprintでちょこっと表示させる場合、
#{変数}
と書くだけでOKです。
print(“税込み#{zeikomi}円\n”)
キーボードで入力した値を変数に代入する(gets.to_iとgets.to_f)
例えば価格と個数を入力すると合計金額を入力するような場合に利用できます(・ω・)
整数(小数点以下切り捨て)を入力する場合、
gets.to_i
実数を入力する場合、
gets.to_f
を使います。
価格と個数を入力すると合計金額を表示するプログラムは次の通りです。
puts(“価格を入力してEnterを押して下さい。”)
price=gets.to_i
puts(“個数を入力してEnterを押して下さい。”)
pics=gets.to_i
total=price*pics
puts(“合計金額は#{total}円です。\n”)
「合計金額は●円です。」と表示されます(・ω・)ノ
第2回 は 「3,000円以上なら送料無料」とするために条件分岐(じょうけんぶんき)というものを使えるようにします(・ω・)