if、unless、三項演算子
分岐の基礎です。
「if、unless、三項演算子」はCoddyKit上の無料Ruby Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはRuby Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ruby Academyコースには全4レッスンが含まれています。
分岐の基本
プログラムでは、判断を行う必要があります。Rubyでは、条件がtruthyの場合にだけ、ifキーワードがコードのブロックを実行します。
if式は条件を評価し、その条件が成立する場合は、ifとendの間にあるコードを実行します。
age = 20
if age >= 18
puts "You are an adult"
endif / else
条件がfalseの場合を処理するには、else分岐を追加します。実行される分岐は必ず1つだけです。
age = 12
if age >= 18
puts "Adult"
else
puts "Minor"
endelsifチェーン
複数の条件を順番にテストするにはelsifを使います。Rubyは上から下へ条件を確認し、最初に一致した分岐を実行します。
- つづりに注意してください。
elseifやelse ifではなく、elsifです。
score = 75
if score >= 90
puts "A"
elsif score >= 70
puts "B"
elsif score >= 50
puts "C"
else
puts "F"
endifは式
Rubyでは、ほとんどすべてが値を返す式です。ifは実行された分岐の値を返すため、変数に代入できます。
age = 20
status = if age >= 18
"adult"
else
"minor"
end
puts status修飾子if
短い1つの文には、行末にifを置きます。英語のように読めるうえ、Rubyらしい一般的な書き方です。
temperature = 35
puts "It is hot!" if temperature > 30unlessを知る
unlessはifの反対です。条件がfalseの場合に本体を実行します。unless xはif !xと考えてください。
logged_in = false
unless logged_in
puts "Please log in"
end修飾子unless
ifと同様に、unlessも1行のコードに付ける末尾の修飾子として使えます。
stock = 0
puts "Out of stock" unless stock > 0elseを伴うunlessは避ける
unlessにはelseを付けられますが、すぐに読みにくくなります。両方の分岐が必要な場合は、通常のifを優先してください。
active = false
unless active
puts "Inactive"
else
puts "Active"
end
# Clearer as a normal if/else三項演算子
三項演算子は、1つの値を扱う簡潔なif/elseです。構文はcondition ? value_if_true : value_if_falseです。
age = 20
label = age >= 18 ? "adult" : "minor"
puts label文字列内の三項演算子
三項演算子は文字列の埋め込みの中で特に便利です。完全なif/elseをきれいに収められない場合に使えます。
count = 1
puts "You have #{count} item#{count == 1 ? "" : "s"}"使い分け
簡単な指針を示します。
- 一般的な分岐には
if/elsif/elseを使います。 - 自然に読める単一の否定条件には
unlessを使います。 - 2つの単純な値から選ぶには三項演算子を使います。
巧妙さよりも、常に読みやすさを優先してください。
n = 7
parity = n.even? ? "even" : "odd"
puts "#{n} is #{parity}"クイックチェック
分岐についての理解度を確認します。
まとめ
Rubyの分岐の道具について学びました。
if/elsif/elseは、truthyかどうかに基づいてコードを実行します。ifは値を返す式です。- 修飾子形式(
do_x if cond)は、短い1行の処理に適しています。 unlessはif !です。明確な否定条件に使います。- 三項演算子
? :は、2つの値から簡潔に選択します。
grade = 88
result = grade >= 60 ? "pass" : "fail"
puts "Result: #{result}"よくある質問
「if、unless、三項演算子」レッスンは無料ですか?
はい。「if、unless、三項演算子」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ruby Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ruby Academyコースには全4レッスンが含まれています。
「if、unless、三項演算子」で何を学びますか?
分岐の基礎です。 ブラウザで直接実行するハンズオンコードでRuby Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Ruby Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのRuby Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「if、unless、三項演算子」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このRuby Academyレッスンでコードを書いて実行できますか?
はい。すべてのRuby Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- if、unless、三項演算子
- case/when 式
- Ruby の真偽値判定
- ガード節