あなたのコード
def englishNumber number
testNegative(number)
testIfZero(number)
end
呼び出し、結果を無視:私はtest_negative
に変更します。
次に、testIfZero(number)
を呼び出し、呼び出し元に結果を返します。
englishNumber -1
の場合、testIfZero(number)
の結果はnilであり、puts
は空の行を書き込みます。
englishNumber 0
の場合は、期待される文字列'zero'
が得られます。
あなたがor
条件(または||
)で結果を返す必要があり、代替として結果が必要な場合。
完全な例:
def testNegative number
if number < 0 # No negative numbers.
return 'Please enter a number that isn\'t negative.'
end
end
def testIfZero number
if number == 0
return 'zero'
end
end
def englishNumber number
testNegative(number) or testIfZero(number)
end
puts englishNumber -1
puts englishNumber 0
または代替構文を持つ:
def testNegative number
return 'Please enter a number that isn\'t negative.' if number < 0 # No negative numbers.
end
def testIfZero number
return 'zero' if number == 0
end
def englishNumber number
testNegative(number) || testIfZero(number)
end
puts englishNumber -1
puts englishNumber 0
私は私はあなたのコメントが正しい理解かどうかわからないんだけど、多分あなたは、このような解決策を探しています:
def testNegative number
puts 'Please enter a number that isn\'t negative.' if number < 0 # No negative numbers.
end
def testIfZero number
puts 'zero' if number == 0
end
def englishNumber number
testNegative(number)
testIfZero(number)
end
englishNumber -1
englishNumber 0
puts
コマンドは、メソッド内で使用することもできますが、結果を返す必要はありません。質問の範囲外
備考:メソッド内のメソッド呼び出しの使用量は、最も簡単な解決策ではありません(私はあなたがメソッド呼び出しの使用状況を確認したいと思います)。
私が使用します。
def english_number number
if number < 0 # No negative numbers.
return 'Please enter a number that isn\'t negative.'
elsif number == 0
return 'zero'
end
end
を私はプログラムは英語番号の最初の呼び出しで終了する必要はありませんので、キーワードの昇給が私のために動作しません追加。今追加したり、今のところ働いている解決策ですが、コードの最後の行ではなくなっても、最初の行のように無視されてしまいます。 – MattGoldwater
Gwater17:答えを編集して、 'english_number'にもっと多くのコード行を追加する方法を示しました。しかし、私はまだ将来の読者の利益のためにそこに例外の言及を残しました。 –