LoginSignup
1
1

More than 1 year has passed since last update.

Ruby12

Posted at

問題

ターミナルから数字を入力して、数字に応じて以下のように出力するプログラムを書いてください。

・10以下なら10以下の数字です
・10より大きい数値なら10より大きい数字です
・10以下でかつ0以下なら0以下の数字です

雛形(ソースコードを追記すること)
input = gets.to_i



模範解答

模範解答
input = gets.to_i

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

【解説】

①ターミナルから数値を入力する書き方

ターミナルから数値を入力するにはgetsというメソッドを使います。
このgetsメソッドを使って入力した値は全て文字列になるため、getsの値をto_iメソッドを使って数値に変換します。

②条件分岐の書き方

条件分岐はif文を使います。今回は3つのパターンで分岐するためelsifとelseも使います。

記述例
if 条件1
  # 条件1のときの処理
elsif 条件2
  # 条件2のときの処理
else
  # 条件3のときの処理
end

今回の条件は数値の比較です。比較には<や==などの比較演算子を使います。
今回は10以下や0以下という比較なので、<=を使います。=を付けた場合は以下や以上という意味になります。

3つの条件のうちどの条件から記載するかが難しい部分です。
if文は先に書いた条件から判断していきます。そのため上の条件に当てはまったら、たとえ下の条件に当てはまっても、下の条件の処理はスルーされます。

かつ、と条件に記載されていても10以下かつ0は、シンプルに考えて0以下の数字という条件になります。

・10以下なら10以下の数字です
・10より大きい数値なら10より大きい数字です
・10以下でかつ0以下なら0以下の数字です

よって、この中で優先処理が高いのは3つめの条件です。
0以下の数字、10以下の数字、10より大きい数字の順に処理をしていく記述をします。

&&(かつ)を使いそうになりますが、条件を整理するとシンプルな条件式に整理する事ができます。

1
1
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
1