名前を入力する機能を作っていこうと思います。
ただし、名前以外のピリオドやスペースが入っている場合にはエラーを表示させます。
include?メソッドを使って考えていきたいと思います。
include?メソッドは指定した要素が、配列や文字列内に含まれているかを判定するメソッドです。
参考:
Ruby 3.0.0 リファレンスマニュアル, include?
例)
array = ["foo", "bar"]
puts array.include?("bar")
# => true
puts array.include?("hoge")
# => false
名前がしっかりと登録できるか調べるメソッドを作りたいので、メソッド名はcheck_nameとします。
出力例は
名前を入力してください(例)SuzukiIchiro
SuzukiIchiro(入力した名前)
→ 登録が完了しました
Suzuki.Ichiro(入力した名前)
→!エラー!記号は登録できません
Suzuki Ichiro(入力した名前)
→!エラー!スペースは登録できません
このように出力されるようにしていきます。
初めに、入力してもらうための案内と文字を入力するためのメソッドを使用します。
puts "名前を入力してください(例)SuzukiIchiro"
str = gets
getsメソッドを使用して、str = getsとすることでターミナルで入力した名前がstrに代入されます。
次にcheck_nameメソッドを作成して、それを呼び出す記述を行います。
def check_name(str)
end
puts "名前を入力してください(例)SuzukiIchiro"
str_1 = gets
check_name(str_1)
check_name(str_1)の実引数(str_1)には、getsメソッドで入力された名前がセットされています。
check_nameメソッドを呼び出すと同時実引数にセットされている値が仮引数(str)に受け渡されます。
最後にcheck_nameメソッド内の処理を記述していきます。
条件分岐とinclude?メソッドをを組み合わせて記述をしていきます。
def check_name(str)
if str.include?(".")
puts "!エラー!記号は登録できません"
elsif str.include?(" ")
puts "!エラー!スペースは登録できません"
else
puts "登録が完了しました"
end
end
puts "名前を入力してください(例)SuzukiIchiro"
str_1 = gets
check_name(str_1)
if文は条件が当てはまった時点で処理が終了するため、先にピリオドやスペースがあるかという条件式を先に記述をしていきます。
これで条件つきの名前入力機能が作成できました。