Ruby練習問題1-3:if文を使って判定プログラムを作ろう

記事内に商品プロモーションを含む場合があります

Rubyの初心者向け問題1-3:if文を使って判定プログラムを作ろう

この問題を解くために必要な知識:
【レベル1の知識】
コメントの書き方、変数と定数、基本データ型、四則演算と演算子、入力と出力、文字列操作、分岐処理(if、if~else、elsif、case)、繰り返し処理(for、while、until、each)範囲(Range)例外処理(begin-rescue-end)

<<前の問題 問題集Top 次の問題>>

Rubyの文法「分岐処理(if文、if~else文、elsif文)」とは

ここでは分岐処理(if文、if~else文、elsif文)の意味や使い方を復習します。必要ない方はここをクリックして練習問題へ飛びましょう。



プログラムを条件に応じて異なる処理を行わせたい場合、分岐処理を使います。Rubyでは主に以下の4つの方法で分岐処理を行います。

if文

if文は、ある条件がである場合にのみ、そのブロック内の処理を実行します。

x = 7

if x > 5
  puts "xは5より大きいです"
end

上記の例では、xが5より大きい場合に"xは5より大きいです"が表示されます。

if-else文

if文に加えて、条件がの場合に実行されるelseブロックを追加することができます。

x = 3

if x > 5
  puts "xは5より大きいです"
else
  puts "xは5以下です"
end

この場合、xが5以下であるため、"xは5以下です"が表示されます。

elsif文

複数の条件をチェックしたい場合は、elsifを使います。最初のifの場合、次の条件をチェックします。

x = 10

if x > 10
  puts "xは10より大きいです"
elsif x == 10
  puts "xはちょうど10です"
else
  puts "xは10以下です"
end

xが10の場合、"xはちょうど10です"が表示されます。

case文

case文は、複数の条件をシンプルに記述するための分岐方法です。特に、値がいくつかの選択肢の中にあるかを確認したいときに便利です。

case文については次の記事で詳細に説明します。

まとめ

  • if文は基本的な条件分岐を行います。
  • if-elseで条件が成り立たない場合の処理を追加できます。
  • elsifを使うと、複数の条件を簡単に確認できます。
  • case文は選択肢が多い場合に便利です。

これらの分岐処理を理解して、プログラムの流れをコントロールできるようになりましょう! ​




Ruby練習問題1-3:if文を使って判定プログラムを作ろう

ユーザーに数値を入力させ、その数値が「正の数」「負の数」「ゼロ」のいずれであるかを判定するプログラムを作成してください。

if文、elsif文、else文を使って数値の種類に応じたメッセージを表示します。

この問題の要件

以下の要件に従ってコードを完成させてください。

  • ユーザーに数値の入力を促し、入力された値を整数として変換すること。
  • if文を使って、入力された数値が正の数か負の数か、それともゼロであるかを判定すること。
  • 数値が正の場合、「正の数です」、負の場合、「負の数です」、ゼロの場合は「ゼロです」と表示すること。

ただし、以下のような実行結果となること。

----- ↓出力される結果の例↓ -----

数値を入力してください:
10
正の数です

----- ↑出力される結果の例↑ -----

この問題を解くヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。

1.putsでユーザーに数値の入力を指示

2.gets.chomp.to_iでユーザーが入力した数値を整数として取得し、numberに格納

3.条件分岐の開始
 3-1. if文でnumberが正の数かどうか判定
  3-1-1. number > 0の場合、「正の数です」と表示
 3-2. elsif文でnumberが負の数かどうか判定
  3-2-1. number < 0の場合、「負の数です」と表示
 3-3. else文でnumberが0であることを判定
  3-3-1. それ以外(number == 0の場合)、「ゼロです」と表示

ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

# ユーザーに数値を入力させる
puts "数値を入力してください:"

=begin 【穴埋め問題1】
ここでユーザーからの入力を受け取り、整数に変換して変数numberに格納してください。
=end

# 数値の判定を行う

=begin 【穴埋め問題2】
ここにif文を使って、numberが正の数かどうかを判定し、それに応じてメッセージを表示するコードを書いてください。
=end

 

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。



解答例

この問題の一つの正解例とそのコードの解説を以下に示します。

正解コードの例

例えば以下のようなプログラムが考えられます。

********************

# 判定プログラム

# ユーザーに数値を入力させる
puts "数値を入力してください:"
number = gets.chomp.to_i
# gets.chomp.to_i はユーザーからの入力を受け取り、改行を除去し、整数に変換します。

# 数値の判定を行う
if number > 0
  puts "正の数です"
elsif number < 0
  puts "負の数です"
else
  puts "ゼロです"
end
# if 文を使って数値が正、負、または0であるかを判定し、それに応じたメッセージを表示します。

********************

正解コードの解説

今回のRubyコードでは、ユーザーからの入力を受け取り、それをもとに数値が正の数、負の数、またはゼロかを判定するプログラムを作成しています。

この解説では、コードの各部分を説明し、特に分岐処理(if文、if-else文、elsif文)の使い方に焦点を当てます。

ユーザーに数値を入力させる部分

puts "数値を入力してください:"
number = gets.chomp.to_i

最初にputsを使って「数値を入力してください」というメッセージを画面に表示し、次にgets.chomp.to_iでユーザーから入力された値を取得します。

getsはユーザーの入力を受け取るメソッドで、chompは入力された改行を取り除き、to_iはその値を整数に変換します。

この結果、入力された数値がnumberという変数に保存されます。

分岐処理を使った数値の判定部分

if number > 0
  puts "正の数です"
elsif number < 0
  puts "負の数です"
else
  puts "ゼロです"
end

ここがこのプログラムの重要な部分である分岐処理です。条件に応じて異なる処理を実行するためにifelsifelseを使います。

  • if文if number > 0では、numberが0より大きいかどうかを確認します。もし真であれば、「正の数です」と表示します。
  • elsif文elsif number < 0では、numberが0より小さいかどうかを確認します。もし真であれば、「負の数です」と表示します。
  • else文:上記2つの条件がどちらも当てはまらない場合、つまりnumberが0である場合、「ゼロです」と表示します。

このように、複数の条件に対して異なる処理を行うことができます。

まとめ

今回のコードでは、if文elsif文、そしてelse文を使った基本的な分岐処理を学びました。

このような構造を使うと、様々な条件に応じた処理を柔軟に書くことができ、プログラムに幅広い判断力を持たせることが可能です。

ぜひこの機会に分岐処理を理解し、次のステップに進んでください。

<<前の問題 問題集Top 次の問題>>

この問題への質問・コメント

この問題を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    Ruby練習問題集へ戻る
    トップページへ戻る