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

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

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

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

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

Rubyの条件分岐

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

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

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

ifの使い方

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

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

演習

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

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

答え

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

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

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

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

Rubyのループ

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

forの使い方

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

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

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

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

演習

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

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

答え

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

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

Rubyの関数

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

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

関数の使い方

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

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

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

演習

それでは演習です。

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

答え

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

まとめ

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

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

それでは!!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

かい

かい

日向徹かこよすぎか

[email protected]

おすすめコンテンツ

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

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