初めに
初学者です。rubyの練習問題を私なりに解説することにより定着させるのが目的です。間違いなどありましたらご指摘お願いします。
問題
ターミナルから数字を入力して、数字に応じて以下のように出力するプログラムを書いてください。
10以下なら10以下の数字です
10より大きい数値なら10より大きい数字です
10以下でかつ0以下なら0以下の数字です
ソースコードは以下を使ってください
input = gets.to_i
# ここからソースコードを書いてください
まず初めにgetsメソッドについて解説します。
getsメソッド
getsメソッドとはキーボードで入力された値を取得することができます。
注意としてgetsメソッドでは入力された情報を文字列として取得するということです。ソースコードに.to_iと記述されています。これは入力された値を数値に変換しています。
ちなみに数値を文字列にするには.to_sを使用します。
問題の解説
今回は3つの条件に分岐します。よってif~elsif~elseで書いていきます。
今回の問題のポイントですがどの条件から分岐させていくか、になります。
if文では一番最初の文から判断されていきます。なので一番最初には下の条件な当てはまらない記述から書かなければいけます。よって一番最初に書くのは0以下の数字になります。
input = gets.to_i
if input <= 0
puts "0以下の数字です"
end
ちなみに以下や以上にするには<の後に=をつけます。
では続いての分岐も同じように下の条件に合わない記述を書いていきます。
input = gets.to_i
if input <= 0
puts "0以下の数字です"
elsif input <= 10
puts "10以下の数字です"
end
最後に残りをelseで書けば終了です。
input = gets.to_i
if input <= 0
puts "0以下の数字です"
elsif input <= 10
puts "10以下の数字です"
else
puts "10より大きい数字です"
end
ポイントは2つ
1つは、条件分岐の順番。
2つめは、不等号に=をつけて〜以下にすることです。