Ruby基礎(条件分岐)


条件分岐について

前回までは書いたコードをそのまま表示させるだけでした。
しかし、実際は条件によって処理を変更しなければいけないケースが多々出てきます。
そんな時に役立つのが条件分岐です!
では、さっそく実際に書いて動かしてみましょう!

条件分岐規則

条件分岐をする際は今まででてこなかった、インデントと呼ばれるものも意識して書いていきましょう。

インデント

文章の行頭に空白を挿入して先頭の文字を右に押しやること。
文書のスタートを揃えることが、プログラミングでいう所のインデントになります。

if文の規則は下記に書いてある通りです。

if 条件
  結果
else(ifで定義した条件以外だった場合)
  結果
end(if文はこれで終了と定義)<br>
※endは忘れがちなので注意

実際に新規ファイルを作成(conditions.rb)して条件分岐を使用したコードをみてみましょう!

conditions.rb
name = "hoge"

if name == "hoge"
  puts "あなたの名前は"+name+"です。"
else
  puts "あなたはhogeではありませんね。"
end

※今回でいうと赤線を引いているところがインデントになります。ここを役割ごとに揃えないとエラーがでたり、後々見直した時に見辛くなってしまうので、常にここは意識して揃えるようにしましょう!

今回コード内容を解説すると。
1.nameという変数に、文字列のhogeを定義します。
2.もしnameという変数の中身が文字列のhogeだったら、あなたの名前はname(hoge)です。と表示します。
3.それ以外だったら、あなたはhogeではありませんね。と表示します。

といった処理が走っています。

elsif

if文のルールでこのifを2回使ってはいけないというのがあります。

if 条件
  結果
if 条件
  結果
end

このようにif文にまたifが入っていますね。
これでは構文エラーと怒られてしまいます。

なので、細くした条件を2個以上書きたい場合は以下のようにelsifを使います。

if 条件
  結果
elsif 条件
  結果
end

これなら1つのif文で、複数の条件式を書くことが可能です!

では、実際に下記のelsifを使ったコードを書いて実行してみましょう!

conditions.rb
LastName = "Hoge"
FirstName = "Taro"

if LastName == "Taro"
  puts "苗字はTaroです"
elsif FirstName == "Taro"
  puts "名前はTaroです"
else
  puts "そんな人は存在しません"
end

かけましたでしょうか??
急に書くコード量が多くなって、タイプミス等ありがちですので、慎重に書いていきましょう!

実行結果は以下の通りだったら成功です!

ターミナル
名前はTaroです

今回のif文では2つめの条件式があっていたので、名前はTaroです。が表示されました!

終わり

今回は条件分岐について学びました。
だんだん使う機能が増えてきて、それに伴いコード量も増えて混乱してきてるかと思います。
しかし、今度こういうの反復で自然と身についていくものなので、焦らず、深く理解せずに次へ次へと不安だと思いますが、進めていきましょう!

では、本記事はこちらで以上になります。

お疲れ様でした!