私はルビーを学んでいて、基礎を学んでいます。条件付きで遊んだ後、私は次のコードを作った:Ruby条件付きの仕組み
x = 10
z = 10
if x==10 && (puts "wow" if x == z)
puts "hello"
end
私はそれを実行すると私は "うわ"だけだ。 "こんにちは"が決して印刷されない理由を誰かが説明できましたか?
ありがとうございます。
私はルビーを学んでいて、基礎を学んでいます。条件付きで遊んだ後、私は次のコードを作った:Ruby条件付きの仕組み
x = 10
z = 10
if x==10 && (puts "wow" if x == z)
puts "hello"
end
私はそれを実行すると私は "うわ"だけだ。 "こんにちは"が決して印刷されない理由を誰かが説明できましたか?
ありがとうございます。
nil
戻りputs
ので:
def test_method
puts "test"
end
t = test_method #=> "test"
p t #=> nil
何それが意味することはfalse
に評価されますif x==10 && nil
です。したがって、それは決して条件の中に入らず、「こんにちは」を印刷します。
私はついにそれを得ました:)。 'if x == 10 &&(p" wow "if x == z)'を使ってテストを行い、 "hello"を見なければなりませんでした。 –
戻り値puts
は実際にはゼロです。
基本的に、どのような文は言うことnil
の値がfalse
ある
if x==10 && nil
puts "hello"
end
です。条件にfalseがある場合、式は自動的にfalseに評価されます。したがって、コードブロックは実行されません。
あなたは 'puts'リターンとその結果があなたの条件にどのような影響を与えるかあなた自身に尋ねますか? –
あなたの質問とは別に、あなたが何をしようとしているのか分かりません。 'x!= 10'のとき' '(puts" wow "if x == z)'は実行されないことに注意してください。 'x == z 'ならば' 'wow'を、' 'x = 10'と' z = 10'ならば '' hello ''を入れたいならば、 '' x == z; "うわー"を入れます。 x == 10ならば "hello"を入れます。終わり。 –