気ままに趣味旅行

面白いコト「拡がる/拡げる」

Rubyの基礎1

f:id:hiroakies4463:20190110194257j:plain
どうもhiroakiです。

 

今回はRubyの基礎について紹介したいと思います。Webサイトを作ろうとしている人にとってRubyは必須の言語です。自分はとにかくウェブサイトを作ってみたい人間ですので、これをなんとか習得したいと思っています。これからまとめる内容を、みなさんもぜひ参考にしてみてください。

 

Rubyとは

1995年、まつもとゆきひろさん(=Matz)は、好みの言語をブレンドし、 関数型プログラミングと命令型プログラミングが絶妙に調和された新しい言語Rubyを作りました。

楽しくコードを書くことがモットー。Rubyは、主にWeb開発現場で使われており、プログラミング未経験者でも習得しやすい言語の一つと言われています。

日本語での参考図書や文献が多いのも初心者にとって、うれしいですね。

ま、私からの前置きはこのくらいで!下にサイトがありますので、取組む前に軽く読むのをおすすめします。

www.ruby-lang.org

 

開発環境の設定

学習に取組む前に、開発環境を設定する必要があります。

こちらの記事を参考にしてみてください。

prog-8.com

もし、設定が面倒くさい人(私です笑)は、下のサイトで試してみるのもいいでしょう。

paiza.io

 

▼下のようなエディタが使えます。

もちろんこのサイト上でも使えますので、下の空欄に自由にコードを入力して試してみましょう。

では、早速やって行きましょう!

 

lesson1

まずは、ルビーのファイルを作っていきましょう。ルビーのファイル拡張子は.rbです。

  1. #index.rb
  2. puts "気ままに趣味旅行"
  3. puts '気ままに趣味旅行'
  4. =begin
  5. puts 66
  6. puts 6+6
  7. =end

上記コードを、上のpaiza.ioにコピペして、試しに実行してみましょう。コードは実際に打ちながら試すことが大事です。

「puts」は文字列や数字を出力する命令です。メソッドともいいます。プログラミングでは、このようなメソッドで、コンピュータに対して動作を指示していきます。

文字列を表示する場合、「puts "文字列"」のように、「puts」半角スペースのあとに「""」か「''」で文字列を囲みます。ちなみに、後々おすすめなのは、ダブルクオーテーション「""」です。

数字を表示する場合は、クオーテーションが必要なくなります。

Rubyでは、「#」から行末までがコメントです。
複数の行をコメントアウトするときは、行の先頭に「=begin」と終わりに「=end」を記述すると、その間がコメントになります。

複数行を「#」でコメントアウトする場合には、コメントにしたい行を選択して、「ctrl」+「/」キーを押すと楽にできます。実際開発ではこちらがよく使われるそうです。

企業などではコメントの書き方ルールが決まっている場合もありますので、確認しましょう。自分で開発する場合でも分かりやすいコメントを心掛けてください。

atuweb.net

よいコメントを書くには、よいコードを書くことが大切です(どの口が言うねん笑)。こちらを参考にしましょう。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

 

 

Rubyプログラムを実行する方法には2つあります。

irb(interactive ruby)を利用する方法

  1. irb
  2. >puts "気ままに趣味旅行"
  3. 気ままに趣味旅行
  4. =>nil

nilについては次回以降で説明します。

rubyファイルを実行する方法

  1. ruby index.rb

 

lesson2

文字の表示はputsやprintメソッドを使用して行います。

次のようにすれば、HTMLを表示できます。

  1. puts "<h1>気ままに趣味旅行</h1>"
  2. print "<h1>気ままに</h1>"
  3. print "<h1>趣味旅行</h1>"

ここでは、putsメソッドでは、改行。printメソッドでは改行しないと覚えとくと便利です。

 

lesson3

演算子

  1. puts "hiroakiさん"+"当選です"
  2. puts 2+3
  3. puts 2+"番当選です" #エラー

たす  +

ひく  -

かける *

わる  /

わったあまり %

1.行目は文字列の連携です。3.行目は数値と文字の連携になっていますね。コメントにエラーとあるように、データ型が異なるために数値と文字の連結はできません。

では、どうするか、次の変数展開を利用します。

 

lesson4

変数展開

変数展開をするには、まず変数に値を代入します。

  1. name = "hiroaki"
  2. puts name
  3. puts "#{name}は気ままに趣味旅行を作った"

1.行目を見てください。変数は次のように、「変数名=値」として右の値を左の変数に「代入」します。変数は値をいれておく箱のようなものと覚えましょう。ここにはいろいろな値を入れることができます。

2.行目で設定したnameを呼び出します。こうすることで、先ほど代入した値が出力されます。ここでは""をつけないよう注意してください。"name"とするとが文字列として認識されます。

いよいよ変数展開についてです。

先ほど、数値と文字の連結はできませんとお伝えしましたが、3.行目の""内に#{変数名}とすることで変数を表示させることができます。また、コメントはシングルクォーテーション''でも表示できるとお伝えしましたが、シングルクォーテーション''の場合は変数展開ができませんので注意です。

結果を入力して実際にできたか確認してみましょう。

また、「\n」(=改行します)のような特殊文字を入れる際もダブルクオーテーション""で囲う必要がありますので注意です。

  1. puts "#{name}は気ままに\n趣味旅行を作った"

これを言うと、混乱するかもしれませんが、逆に特殊文字をそのまま表示させたい場合ってありますよね?この場合にはむしろ、シングルクオーテーションを使えばいいってことになります。

 

また、変数に数値を代入する場合、下のように省略形を使うことができます。よく使うので覚えておきましょう。

基本形:num = num +10 →省略形:num+=10

 

lesson5

変数

変数を使う理由には、以下のものがあります。

・同じ要素を繰り返し使える

・変更に対応しやすい

・何の要素か分かりやすい

上記を意識して、何度も使うものには分かりやすい名前を付けるなどしましょう。

また、変数名のルールとして次のものがありますので守りましょう。

①英単語から始めること。数字から始められない。

②2語以上をつなげる場合はアンダーバーでつなぐ(name_man)。

 

また、下のようにプログラムは上の行のコードから順に実行される特徴があります。

  1. name = "hiroaki"
  2. puts name
  3. name = "tom"
  4. puts name

2.行では変数nameの値がhiroakiになっており、4.行ではnameの値がtomになっているのを確認しましょう。

 

lesson6

条件分岐

if文を用いると「もしAならばBをする」という条件分岐ができます。

  1. score = 10
  2. if score == 10
  3.   puts "よくできました"
  4. end

ifからendまでが条件文の中身です。2.もしscoreが10以上なら、3.行目を実行する、という意味になってます。

=ではなく==となっている点を注意してください。

同じ ==

左大きい >

右小さい <

左が右以上 >=

左が右以下 <=

 

真偽値

真偽値はtrueとfalseという2つの値のことです。条件式が成り立つと「true」、成り立たなければ「false」という真偽値になります。

  1. puts 20 < 10 # false
  2. puts 30 == 30 #true
  3. puts 20 != 21 #true 

つまり、先ほどの「もしAならばBをする」は正確には、「もしAがtrueならばBを実行する」という意味になります。

 

練習のために色々な条件式を作ってみましょう。

  1. money = 200
  2. if money >= 400
  3.   puts "お金持ち"
  4. elsif money >= 200
  5.   puts "ぼちぼちですね"
  6. elsif 100 =< money && money < 200
  7.   puts "普通です"
  8. else
  9.   puts "ビンボーです"
  10. end

 ifで一つ目の条件式、2つ以上の条件を追加する場合は、elsif条件を追加していきます。それらの条件が成り立たない場合はelse条件を参照します。

先ほどもお伝えしましたが、プログラミングは上から順に実行されていくので、条件に当てはまるかどうかも上から確認されていきます。注意してください。

また、6.のようにすれば、複数の条件を組み合わせることができます。「条件1 && 条件2」は「条件1がtrueかつ条件2がtrueの場合」という意味です。2つとも成り立つ場合に実行されます。

かつ &&

または ||

 

 

今回は以上です。

次回以降もまとめていきます。自分も学びながらまとめていっているので、間違いや意見、質問等あればコメントください。

よろしくお願いします。

ではでは。