素材

プログラミングスクールに通う前にやっておきたいRuby超基礎入門

現役でエンジニアをやりながらプログラミングスクールで講師をしております,迫佑樹と申します.

最近文系でもプログラミングを学び始める人とかが多くて,「独学でやったけど挫折した」とか,「プログラミングスクールの教材難しい...」っていう話をよく聞きます.

そこで今回私が,プログラミングスクールに通う以前に知っておくと学習効率がアップするようにかなり丁寧にRubyの基礎をまとめてみました.

このnoteの対象者
・プログラミングスクールへ通う前に基礎を触っておきたい方
・とりあえずプログラミングに触れてみたい方
・一度プログラミングをやってみたが,よくわからなかった方
・Rubyの分厚い本を読んだが挫折した方

このような方向けに,専門用語を使わずできる限り丁寧にRubyというプログラミング言語の基礎をまとめてみました.なお,「Rubyの超基礎を最短で理解するためのnote」ということで,削れるところは削りできるだけインプット過多にならないように心がけました.そのため一通り理解したら,他の書籍などと組み合わせて学習してみることをオススメします.

事前準備として,私のブログのCloud9登録方法解説ページ の手順に沿ってCloud9というサービスに登録を済ませておいてください.WindowsユーザでもMacユーザでも大丈夫です.

約27000文字とボリューム多めですが,「知識をつける」→「実践してみる」の流れで自然にプログラミングを学べる構成にしたので,あまり長くは感じないと思います.

■目次
●Rubyってなんなの?●初めてのプログラム
・文字を表示してみよう
・計算してみよう
●変数・配列
・変数を使ってラベル付け
・配列で複数のものを一気に
・【ワークショップ】おみくじアプリを作ろう
〜以下有料〜
●ハッシュ
・配列にしたらわかりにくくなった?
・【ワークショップ】ToDo管理アプリを作ってみよう
●条件分岐 (4月17日追記)
・if文,unless文 
・【ワークショップ】ToDo管理アプリを改造しよう 
●繰り返し文 (4月19日追記)
・timesメソッド,each文 
・【ワークショップ】ToDo管理アプリを完成させよう
●メソッド
・メソッドについて理解しよう
・【ワークショップ】ToDo管理アプリのプログラムを整理しよう


Rubyってなんなの?

Rubyとは,以下のような特徴を持つプログラミング言語のことです.

1. 短く,シンプルなコードで記述できる
2. オブジェクト指向型言語(後述)
3. 日本人が開発した言語のため,日本語学習サイトが豊富

クックパッドやTwitterなどの有名Webアプリケーションにも活用されており,比較的初心者にも扱いやすいということで多くのプログラミングスクールのカリキュラムでも採用されています.

■初めてのプログラム

それでは,さっそくプログラムを書いていきましょう.Cloud9のメニューバーから「file->NewFile」を選択してファイルを作成します.まだCloud9の登録が済んでいない方は,こちらの手順で登録をお願いします.

新しいファイルが生成されたと思います.Windowsの方は「ctrl+s」,Macの方は「Command+s」を押してセーブしてみましょう.ファイル名は「test.rb」としてください.

それでは,いよいよプログラムを実際に書いていきましょう.

puts "Rubyに入門しました!"

プログラムは以下の部分に記述をお願いします.

先ほどと同様にWindowsの方は「ctrl+s」,Macの方は「Command+s」を押してセーブをお願いします.(以後,セーブの指示はしません.プログラムを書いたら随時セーブをお願いします)

セーブができたら,以下のコマンドを打ってプログラムを実行していきます.コマンドとは,プログラムを実行するための命令文だと思ってください.

ruby test.rb

このコマンドを,以下の部分に打ちこんでみてください.

エンターキーを押してみると,いかがでしょうか?「Rubyに入門しました!」と表示されたはずです.

表示されなかった方は,セーブのし忘れかタイプミスのはずですので,再度ご確認をよろしくお願いします.

それでは,プログラム実行の流れを確認していきましょう.

これ以降,「プログラムを入力してください」と指示をした場合,test.rbに打ち込んでいくものだと思っておいてください.また,「実行してください」といった場合,先程と同様に「ruby test.rb」というコマンドによってプログラムの実行をお願いします.

それでは,次に計算をプログラムにさせてみましょう.以下のプログラムを入力してください.

puts 1+1

実行してみると,「2」と表示されたでしょうか?

「puts」は,その後に続くものを表示するプログラムでしたね.今回は,「1+1」が計算されて2となるので,「puts 1+1」というプログラムを実行すると2と表示されたわけです.

Rubyでは,+,-,*,/,%がそれぞれ足し算,引き算,掛け算,割り算,余りの計算に対応しています.

試しに,以下のプログラムを書いてみましょう.

puts 5+2
puts 5-2
puts 5*2
puts 5/2
puts 5.0/2.0
puts 5%2

これを実行すると,以下のような結果になります.

上から,「足し算,引き算,掛け算,割り算(整数),割り算(少数),5を2で割った時のあまり」を計算しています.

このように,Rubyでは「整数同士の割り算は結果も整数に,少数の割り算は少数になる」ということを覚えておいてください.

さて,これでRubyを使った計算までができるようになりました.

■変数・配列

さて,それでは次に以下のようなプログラムを実行してみましょう.

puts (80+70+60)/3

実行結果は,以下のようになったはずです.

80と70と60を足して3で割っただけなので,70になるのはわかるはずですが,これが何を意味しているかをパッとわかった方は少ないのではないでしょうか?

実は,このプログラムは「国語と数学と英語」のテストの平均点を求めるプログラムだったんです.

ただ,こうは思いませんでしたか?『こんなの数字を足して割ってるだけで,国語と数学と英語の点数を表してるなんてわからない!』

そう,このような数字を羅列しただけのプログラムってわかりにくいんですよ.

ということで,この数字にラベル付けをしてあげましょう.

japanese = 80
math = 70
english = 60
puts (japanese+math+english)/3

こうすることで,最後の4行目をみたときに,『あ,国語と数学と英語の平均点を計算していくんだな』と予想がつくんじゃないでしょうか?

この場合,1行目でjapanese = 80とすることで,4行目のjapaneseは80という数字を表しているのと等価です.

結果的に,「(japanese+math+english)/3」というのは「(80+70+60)/3」と同じ意味になるのですが,しっかりラベル付けした方が後から見たときわかりやすいですよね.

このラベルのことを,専門用語で「変数」と呼びます.上記の例だと,mynameとageが変数となり,"田中"にmynameというラベルをつけることを「mynameという変数に"田中"を代入する」と呼ぶので覚えておいてください.

それでは,先ほどの点数の平均点を求めるプログラムをさらに改変して,「7科目の平均点」を求めてみましょう.国語・数学・理科・歴史・政治・英語・情報の7科目のテストの平均を求めるプログラムは,こんな感じになるはず.

japanese = 80
math = 70
science = 72
history = 90
politics = 50
english = 60
information = 40
puts (japanese+math+science+history+politics+english+information)/7.0

うーん... これだと,科目の数だけ変数が必要になってきますね...

今回だと,変数は7科目あるせいで7つの変数を用意しなければならないため,無駄にコードが長くなってしまっています.そこで『配列』を導入して見ましょう.

実は,『配列』と呼ばれるものを使えば,複数のデータを一括で管理することができるんです!

ここで,配列には複数のデータが管理されているので,使うときは何番目のデータを使うかを明示してあげる必要があります.

それでは,少し配列の実験をしてみましょう.次のようなプログラムを書いてみてください.

my_scores = [80,70,72,90,50,60,40]

puts my_scores[0]
puts my_scores[1]
puts my_scores[6]

以下のような実行結果が得られたでしょうか?

puts my_scores[0]とは,「my_scoresの0番目に入っているデータを表示」というプログラムなので,まず80が表示されたわけです.puts my_scores[1],puts my_scores[6]も同様に,my_scoresの1番目と6番目に入ってるデータを表示したため,上記のような実行結果を得ることができました.

さて,それではこの配列を使って,平均点を出すプログラムを作って見ましょう.

my_scores = [80,70,72,90,50,60,40]
puts (my_scores[0]+my_scores[1]+my_scores[2]+my_scores[3]
+my_scores[4]+my_scores[5]+my_scores[6])/7

これで,先ほど7科目の平均点を出すのに8行かかってたのを,わずか2行に直すことができました.

足し算しているところがあまり綺麗ではありませんが,これは後ほど直していくことにします.

■ワークショップ おみくじアプリを作ろう

さて,それでは簡単なおみくじアプリを作るワークショップをやってみましょう.

以下のような条件を満たしているのがおみくじアプリです.

・プログラムを実行すると,ランダムに運勢が出る
・運勢は,大吉や中吉,小吉など複数ある

さて,2個目の「運勢は複数ある」というのがキーポイントです.複数のデータを管理するために有効なもの,覚えていますか? そう,配列です!

まずは簡単化のため,毎回大吉が出るおみくじを作ってみましょう.以下のようなコードになるはずです.

omikuji = ["大吉","中吉","小吉"]
puts omikuji[0]

「omikuji」という配列には,大吉・中吉・小吉という3つの運勢が記録されています.そして,2行目で0番目を指定して表示しているわけなので,実行すると毎回大吉が出るわけです.

さて,あとはこれをランダムで運勢が表示されるように変更すればOKですね.以下のようにプログラムを書いてみてください.

omikuji = ["大吉","中吉","小吉"]
puts omikuji.sample

この,「.sample」とは「配列の中からランダムで1つ選んでね」という処理を意味しています.こうすることで,実行するごとに違った運勢が出るおみくじが完成しました!

今回は,「omikuji.sample」として,「omikujiという配列の中からランダムで1つ選んで」という意味の処理をさせました.このように「△△.〇〇」の〇〇のことを「メソッド」と呼びます.

メソッドは他にも用意されていて,例えば「配列の中に入っているデータの数を返すlengthメソッド」というものもあります.

プログラムを,以下のように変えてみてください.

omikuji = ["大吉","中吉","小吉"]
puts omikuji.length

すると,実行結果は『3』となったはずです.omikijiという配列は3つのデータを保存しているため.omikuji.lengthの結果が3になったわけですね.

このように,Rubyには便利なメソッドがたくさん用意されており,今回のようにおみくじアプリなどをすごくシンプルに開発することができるというわけです.

■ハッシュ

さて,それでは次に,ハッシュについて学んでいきましょう.

ここから先は

21,678字 / 44画像

¥ 980

この記事が気に入ったらサポートをしてみませんか?