1
0

More than 3 years have passed since last update.

Ruby基礎(条件分岐)

Last updated at Posted at 2020-01-30

条件分岐について

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

条件分岐規則

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

インデント

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

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

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

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

conditions.rb
name = "hoge"

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

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

今回コード内容を解説すると。
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です。が表示されました!

終わり

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

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

お疲れ様でした!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0