Ruby 条件式Ifとincludeメソッドについて

スポンサーリンク
Ruby メソッド一覧集プログラミング
スポンサーリンク

【Ruby】 条件式Ifとincludeメソッド解説

  1. 条件式Ifの基本的な使い方の解説をします
  2. Rubyのincludeメソッドについて解説をします

①条件式if メソッド

条件式は出力させるべき処理をはじめに書く

一番最初の条件式がtrueの場合、それのみが出力される。

それ以降の記述は出力されないのではじめに出力させるべき処理を書きます。

例)入力された数字の大きさを表示する

input = gets.to_i

if input <= 0   
puts "0以下の数字です" 
elsif input <= 10   
puts "10以下の数字です" 
else   
puts "10より大きい数字です" 
end

3つのパターンで条件を分けるため、elsifとelseも使います。

今回の条件は数値の比較です。比較には<や==などの比較演算子を使います。
今回は10以下や0以下という比較なので、<=を使います。

=を付けた場合は以下や以上という意味になります。

今回の問題のポイントは、3つの条件のうちどの条件から記載するかということです。

if文は先に書いた条件から判断していきます。そのため上の条件に当てはまったら、たとえ下の条件に当てはまっても、下の条件の処理はスルーされます。

今回の問題で以下のように書くとどうなるか。

if input <= 10    
puts "10以下の数字です" 
elsif input <= 0   
puts "0以下の数字です" 
end

このとき、inputが-1だったとすると、最初の条件式にも当てはまってしまい、”10以下の数字です”と出力されます。”本来は0以下の数字です”と出力されなければいけません。

よって正解は条件式の順番を入れ替えた以下になります。

if input <= 10    
puts "0以下の数字です" 
elsif input <= 0   
puts "10以下の数字です" 
end

10以下でなければ10より大きいため、10より大きい数値の場合の条件はelseのあとに書きます。

②include? メソッド

include? メソッドとは?

指定した要素が、配列や文字列内に含まれているかを判定するメソッドのこと

def check_name(str) 
  if str.include?(".")
    puts "!エラー!記号は登録できません"
  elsif str.include?(" ")
    puts "!エラー!空白は登録できません"
  else
    puts "登録が完了しました"
  end
end
puts "登録したい名前を入力してください(例)YamadaTaro"
str = gets
check_name(str)

読み方

puts “登録したい名前を入力してください” の下にあるgetsメソッドで文字列を入力。その文字列を変数strに代入。

メソッドcheck_nameを呼び出す。先ほど入力した文字列が引数strに渡される。

メソッドの中身を確認する。

もしstrに” . ”が含まれていたらputs !エラー!記号は登録できません を出力。

もしstrが空白だったらputs !エラー!空白は登録できません を出力。

そうでなければputs 登録が完了しました を出力。

コメント