您的代碼
def englishNumber number
testNegative(number)
testIfZero(number)
end
電話和忽略的結果。
然後它調用testIfZero(number)
並將結果返回給調用者。
對於englishNumber -1
testIfZero(number)
的結果爲零,並且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'。但是,爲了未來讀者的利益,我仍然提到了例外情況。 –