スライドショー

Rubyのプログラムはどう書くの?例を見ながら基礎をマスターしよう!


Rubyのプログラムってどのように書くんだろう
Rubyのプログラム例が見てみたい
学んだあとに実際にアウトプットして定着させたい

Rubyを学びたてもしくは学ぼうと思っている方の中には上記のようなことを思う方も多いのではないでしょうか?

みなさんこんにちは!業務でもRubyを用いている現役エンジニアのかいです。

今日は、Ruby初学者の方が思う基礎的な文法の解説や、プログラム例をたくさん見たいという方のために記事を用意しました。

この記事はこんな人のために書きました。

  • Rubyのプログラムの書き方がわからない
  • 基礎的な文法をマスターしたい
  • Rubyのコードを実際にみながら解説してもらいたい
  • 解説後、課題などを説いて力をつけたい

今はRubyが熱い!?

それでは、いきなりコードの説明に移って行く前に、軽くRubyがどんな言語かということを解説しておきます。Rubyが今熱い、入門に向いている、などの情報を元に勉強を始めた方が多いと思います。

Rubyとは、まつもとゆきひろ氏によって作られた言語で、動的なオブジェクト指向の言語です。オブジェクト指向については以下の記事がわかりやすいかと思います。

オブジェクト指向とは何か?わかりやすい例で説明してみた。
更新日 : 2019年9月11日

そして、Rubyが人気の理由としては書きやすく、柔軟性が高いこと、またRuby on Railsというフレームワークの存在があげられるでしょう。また筆者のイメージでは文字列処理が得意というイメージもありますね。

RubyはRuby on Railsなどの存在もありWebアプリケーションのバックエンドとして使われることが多いです。クックパッドなどもRubyを使っていることで有名ですね。

なので、Web系に進みたいと思っている初学者にとっては最適な入門言語ということですね。また、Rubyを学んでおけば他の動的言語を学ぶときにもすんなり理解できますので、後々違うことがしたくなっても手を出しやすいため学んでおいて損はないでしょう。

Rubyの実行方法

それでは、実際にRubyのプログラムについて見ていきましょう。まずは、当たり前ですがRubyの実行方法をおさらいしておきます。

.rbという拡張子が、Rubyファイルという意味ですね。以下のようなファイルをテスト用に準備しました。

test.rb

puts 'Hello World'

このカレントまで移動しそこで、ruby ファイル名、この場合では以下のようにすると実行できます。

ruby test.rb
Hello World

インタラクティブなシェル

また、Rubyには、インタラクティブシェルという対話型のシェルが用意されており、それを用いると簡単なデバッグや、挙動を調べたいときなどに便利です。サイトの中にはインタラクティブシェルを用いて解説されているものも多いので使い方を見ていきましょう。

とは言っても簡単で、シェルでirbと入力してあげるだけで良いです。あとはここに、好きな処理を書いていけば、その結果が対話的に帰ってきます。ちなみに抜けるときはコントロール+Dです。

irb
irb(main):001:0>

Rubyの条件分岐

さてそれでは、実際にプログラムの基本である条件分岐についてみていきます。具体的にはRubyではif文で条件分岐を行い、elseifはelsifとして表現します。

また複数の条件を分岐させるときは、case文を使うこともありますが、case文については以下の記事を参考にしてみてください。

はじめてのRuby!case文の使い方をマスターしよう!
更新日 : 2019年4月24日

ifの使い方

それでは、実際にifの使い方を見ていきましょう。基本的なif文はif - endをひとまとまりとして下記のように書きます。

if 条件式
    処理
elsif 条件式
    処理
else
    処理
end

これを考慮して、コードを書くと、以下のようになります。

temp = 30

if temp >= 30 then
    puts "hot!"
elsif temp <= 20 then
    puts "cold!"
else 
    puts "confortable!"
end
ruby test.rb
hot!

演習

さて、ここで演習を用意しました。

”score”という変数に標準入力を格納し、59点以下であれば、”fail"、60点以上79点以下であれば、”soso”、80点以上であれば、"good"と出力するプログラムを作成してください。標準入力にはgetsを用いましょう。

答え

それでは以下に解答例を示しておきます。

score = gets.to_i

if score <= 59 then
    puts "fail"
elsif score >= 60 and score <= 79 then
    puts "soso"
elsif score >= 80 and score <= 100 then
    puts "good"
else 
    puts "無効な値です"
end

一行目で受け取った値を数値に変換するのを忘れないようにしましょう。ここでは、to_iを用いていますね。そんなの知らないよ!と思う方もいるかもしれませんが、わからないことは調べるという癖をつけておきましょう。

実際にはこのコードでは、文字列であっても無理やり0に変換してfailを返してしまうのであまりよくありません。他言語のように受け取った値が数値かどうか簡単に調べられれば良いのですが、integer?などはfalseを返してくれませんので正規表現というものを用いて数値判別を行うことができます。

ここは本筋からずれるので割愛しますが、そこら辺も考慮して書けるようになるとより良いですね。

Rubyのループ

次はループの代名詞であるfor文についてみていきましょう。

forの使い方

for文は以下のような書式で記述します。doは省略可能です。

for 変数 in オブジェクト do
  処理
end

このように、オブジェクトの値をひとつずつ変数に入れ実行していきます。C言語などを先に学んでいる方などは混乱しがちなのですが、Rubyのfor文は俗にいうforeach文です。

for文とforeachの違いがわかっている方は気をつけるようにしましょう。違いがよくわからない方は、初めてのfor文だと思うので特に気にせずそういうものだと思って使ってください。

for i in 1..5
    puts i
end
ruby test.rb
1
2
3
4
5

このように、endも忘れないようにしましょう。

演習

演習を解いて力をつけていきましょう。

AからZまでのアルファベットと1から10までの数値の全ての組み合わせを以下の例のように出力してください。

A1
A2
A3
…
z8
z9
z10

答え

答えを見ていきしょう。組み合わせを表現するときはfor文を2重にすることで実現します。

for i in "A".."Z"
    for j in "1".."10"
        puts i + j
    end
end

だいたい同じような感じになっているでしょうか?AからZまで一つずつ手動で配列に入れたりすることはやめてくださいね。できるだけ簡潔なコードを心がけましょう。

Rubyの関数

それでは最後に関数の使い方や呼び出し方をみていきます。関数については詳しく説明すると一記事書けるので最低限の知識を入れておきたい方は以下の記事を参考にしてみると良いでしょう。

【Ruby入門】 関数(メソッド)の使い方まとめ【型 引数 戻り値】
更新日 : 2019年6月27日

関数の使い方

関数はdef、defineの略を使って定義します。簡単書くと以下のようになります。

def 関数名(引数)
    処理
end

# 呼び出すとき
関数名(引数)

実際のコードを見ていましょう。

def Add1 (num)
    num + 1
end

puts Add1(3)
4

返り値は最後に評価された値になりますが、明示的に変数名を書くとその値を返せます。。ここで、返り値?という方は上記のリンクを使って理解を深めておきましょう。

演習

それでは演習です。

引数を2つ(開始値と終了値)を与えると開始値から終了値まで1刻みでその和を計算する関数を作ってください。ただし、結果を関数の中では出力せず関数の外で”result”という変数に定義して出力してください。

答え

答えを見ていきます。これに関しては書き方はたくさんありますが、できるだけわかりやすく簡潔なものが書けるようになると良いですね。

def sum(start, fin)
    total = 0
    start.upto(fin) do |i|
        total += i
    end

    total
end

result = sum(1, 30)

puts(result)
465

このように最後の行で明示的にtotalを返してやらないと正しい値は得られません。コードを見てわかるように、”total”と”result”は同じものですが、このようにスコープごとに名前を変えることもよくあるので頭に入れておきましょう。

Rubyを独学で頑張っているけど先が見えない方のために

いや、おれは違うぞ。先のキャリアもしっかり見えてるし、独学の成果も出てきている

そんな方であれば、これから先の話は必要ないでしょう。そっとページの閉じるボタンを押しましょう。

しかし、「先が見えない」と心の底では勘付いているそこの奥さん。この先を読み進めて、一緒に課題を深堀りしていきましょう。

なぜ「先が見えない」という不安や悩みを抱えてしまうのか

さて、「一寸先は闇だ・・・」とお悩みを抱えている方に、なぜ独学でRubyを勉強しているにもかかわらず、そのような現状を抱えてしまうのか、一緒に考えていきましょう。

先が見えない現状を踏まえ、課題として考えられるものは以下のどれかに該当するでしょう。

  • プログラミングの上達が見えない
  • プログラミングを継続できない気がする
  • プログラミングスキルを習得した姿がイメージできない
  • プログラミングスキルを活かした仕事を獲得するイメージができない

これらのどれかに該当することによって、「なんとなくプログラミング学習をしている」という状態になってしまいます。

これらの要因は、三日坊主になる理論と同じなんですが、「プログラミング学習をしなきゃ」とプログラミング学習を頑張ってしまっている状態になってしまっています。

受験勉強をやった経験のある方なら頭がもげるほどに首を縦に振ってしまう方も多いのですが、「今日も5時間勉強するぞ」や「今日はこの章を終わらすぞ」というように、学習を進めることに意識が行き過ぎてしまうと、ある程度学習を継続した後に「先が見えない・・・」となってしまいます。

未来に光を当て、プログラミング学習を「成果が出るもの」にするために

先ほど、「なぜ先が見えないという悩みや不安を抱えてしまうのか」という疑問に対しての答えを示していきました。

これらの課題というのは、独学をしていれば9割の方がぶつかってしまう壁だそうで、いわば、あるあるの現象なのです。

独学をしていて、「なんか前に進めていないぞ」と感じるのはこのせいなんですね。甘く見がちですが、非常にやっかい。

これがさらにやっかいさを極めているのは、上記に挙げた課題のほとんどが、1人で解決できないものばかりだからです。

実は、これらのほとんどが経験者に助けてもらいながら解決しないと、すぐに違う方向へと流れてしまいます。

そう言い切れるのは、以前の私もそうだったからです。

エンジニアやプログラマー関連のキャリアに詳しい方や現役のエンジニアに相談しながら修正を加え、学習を実践して今があります。

そうは言っても、周りにそういう人がいないし・・・

という方もいるでしょう。そういう時にこそ、プログラミングスクールの無料体験レッスンを利用するのです。

営業をかけられて時間の無駄に終わるでしょ?

という考えに辿りついてしまいますよね。結論から言うと弊社では、そういった強引な営業等を行うことはありませんので、安心して受講できます。

「プログラミング学習の先ある未来」を光で明るく照らすには、弊社の無料体験レッスンがぴったりだと断言できます。それくらい無料体験レッスンに自信を持っているのです。

さらに、無料体験レッスンには以下の3大特典もついてきます!

  • 「最短1ヶ月で開発ができる学習方法」電子書籍(非売品)
  • 効率的なオリジナル学習カリキュラム
  • 未経験の転職(フリーランス)を可能にするキャリアサポート

上記の特典だけでも他のスクールにはないポイントだと自信を持っている無料体験レッスン特典です。

ただプログラミング学習をする毎日から、ワクワクしながらプログラミング学習できる毎日に変える体験を一度でいいのでしてみませんか?

無料体験レッスン予約はこちら

まとめ

いかがでしたでしょうか。Rubyを行う上で最低限必須の条件分岐、ループ、関数についてみていきました。

演習がよくわからなかったという方は、付いてるリンクでさらに深く学べますのでそちらで個別に学ぶのも良いでしょう。ここで説明してる内容は基本中の基本ですので必ずマスターしてできるようにしておきましょう!

それでは!!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

かい

かい

日向徹かこよすぎか

[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説