この記事で学べる知識:if文による分岐処理
この記事の練習問題を解くために必要な知識:
基礎文法(レッスン1)、比較演算子と論理演算子、if文による分岐処理、case文による分岐処理、for文による繰り返し処理、while文による繰り返し処理、until文による繰り返し処理、繰り返しの制御
<<前のページ | Ruby記事一覧 |
次のページ>> |
Rubyの文法「if文による分岐処理」とは
ここでは分岐処理(if文、if~elsif文、else文)の意味や使い方を学習します。必要ない方はここをクリックして練習問題へ飛びましょう。
if文は条件に応じてプログラムの動作を変えるための基本的な構文です。
Rubyではif文を使って条件を判断し、必要に応じてコードを実行またはスキップすることができます。
分岐処理は柔軟で多様なプログラムを作る上で欠かせない重要な要素です。
if文の基本構文
Rubyのif文の基本構造は以下のようになります。
if 条件 # 条件が真の場合に実行される処理 elsif 別の条件 # 最初の条件が偽で、別の条件が真の場合に実行される処理 else # すべての条件が偽の場合に実行される処理 end
- if:指定した条件が真(true)の場合に実行される処理を記述します。
- elsif:追加の条件を設定する際に使用します。if条件が偽であり、elsifの条件が真の場合に実行されます。
- else:ifおよびelsifがすべて偽である場合に実行される処理です。elseは必須ではありませんが、すべての条件が偽であったときの処理を指定したい場合に使用します。
if文の使用例
以下はif文を使った分岐処理の具体例です。
score = 85 if score >= 90 #点数が90点以上の場合 puts "A" elsif score >= 70 #点数が90点以上ではなく、70点以上の場合 puts "B" else #どの条件も満たさない場合 puts "C" end
この例では、変数score
の値に応じて、「A」、「B」、または「C」を表示します。
score
が90以上の場合、「A」と表示されます。score
が70以上90未満の場合、「B」と表示されます。- 上記の条件がすべて偽の場合、つまり
score
が70未満の場合は「C」と表示されます。
このようにif文は複数の条件を順に評価し、該当する処理を実行します。
またelsifやelseは必要に応じて追加するものであり、不要であれば書かなくても問題ありません。
score = 85 if score >= 90 #点数が90点以上の場合 puts "合格" else #ifの条件を満たさない場合 puts "不合格" end
score = 85 if score >= 90 #点数が90点以上の場合 puts "A" end
シンプルなif文の書き方
Rubyではif文を短縮して書く方法があります。行末にif
を修飾子として置くことで、簡潔に条件付きの処理を記述できます。
以下に例を示します。
score = 95 puts "A" if score >= 90 #点数が90点以上の場合はAと出力
この書き方は条件が少なく、単一の行で処理が完結する場合に便利です。
またコードの読みやすさを保ちながら簡潔に記述できるため、Rubyらしいスタイルとして好まれることが多いです。
まとめ
if文は条件に応じた処理の分岐を行うための基本構文です。elsifやelseを組み合わせることで、より複雑な条件分岐も可能になります。
またif修飾子を活用することで、短くて見やすいコードを記述することができます。
プログラムの条件分岐を適切に設定し、Rubyのif文を使いこなしていきましょう。
if文による条件分岐の練習問題:if文を使って判定プログラムを作ろう
ユーザーに数値を入力してもらい、その数値が「正の数」「負の数」「ゼロ」のいずれであるかを判定するプログラムを作成してください。
if文、elsif文、else文を使って数値の種類に応じたメッセージを表示します。
この問題の要件
以下の要件に従ってコードを完成させてください。
- ユーザーに数値の入力を促し、入力された値を整数として変換すること。
- if文を使って、入力された数値が正の数か負の数か、それともゼロであるかを判定すること。
- 数値が正の場合、「正の数です」、負の場合、「負の数です」、ゼロの場合は「ゼロです」と表示すること。
ただし、以下のような実行結果となること。
----- ↓出力される結果の例↓ -----
数値を入力してください: 10 正の数です
この問題を解くヒント
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)
1:プログラムの説明コメント「# 判定プログラム」
2:ユーザーに数値の入力を促すメッセージを出力
3:ユーザー入力を受け取り、変数numberに整数として代入
4:数値が正の数か負の数かゼロかを判定
□ if文でnumberが0より大きい場合に「正の数です」と出力
□ elsifでnumberが0より小さい場合に「負の数です」と出力
□ elseで「ゼロです」と出力
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。
# ユーザーに数値を入力させる 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
ここがこのプログラムの重要な部分である分岐処理です。条件に応じて異なる処理を実行するためにif
、elsif
、else
を使います。
- if文:
if number > 0
では、number
が0より大きいかどうかを確認します。もし真であれば、「正の数です」と表示します。 - elsif文:
elsif number < 0
では、number
が0より小さいかどうかを確認します。もし真であれば、「負の数です」と表示します。 - else文:上記2つの条件がどちらも当てはまらない場合、つまり
number
が0である場合、「ゼロです」と表示します。
このように、複数の条件に対して異なる処理を行うことができます。
まとめ
今回のコードでは、if文、elsif文、そしてelse文を使った基本的な分岐処理を学びました。
このような構造を使うと、様々な条件に応じた処理を柔軟に書くことができ、プログラムに幅広い判断力を持たせることが可能です。
ぜひこの機会に分岐処理を理解し、次のステップに進んでください。
<<前のページ |
Ruby記事一覧 |
次のページ>> |
この記事への質問・コメント
この記事を作成するにあたりAIを活用しています。
問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。