2017-04-14 96 views
-2

你好,大家好我是tryng做獎金運動4.6Codecademy網站4.6獎金鍛鍊

「你可以做什麼,以確保無論您主編重新編輯它是否是大寫或小寫說句話嗎?」

(鏈接= https://www.codecademy.com/courses/ruby-beginner-en-mzrZ6/0/6?curriculum_id=5059f8619189a5000201fbcb

這是我的代碼

puts "Tell me the text to look for" 
text = gets.chomp 
puts "Tell me the word to censor" 
word = gets.chomp 

text_array = text.split(" ") 

text_array.each do |parole| 
if parole == (word.downcase || word.capitalize) 
puts "censure".upcase 

else 

puts "#{parole}" 
end 
end 

爲什麼是錯誤的? PLZ不給我一個總不同的代碼,我想知道爲什麼我的是uncorrect,怎麼會是正確的,感謝

+1

請閱讀「[問]」和「[mcve]」以及鏈接的頁面。當問我們需要你付出努力使你的問題可讀。這包括正確格式化內容,這有助於我們幫助您。沒有付出努力表明我們不尊重我們爲幫助你而付出的努力。另外,SO不是討論列表或Tweet。使用正確的語法。 「PLZ不要......」? –

回答

0

我認爲這裏的最主要的是你誤解了||或操作員如何使用它。

if parole == (word.downcase || word.capitalize)是不檢查是否parole要麼等於word.downcase等於word.capitalize一種方式。 ||是一個運算符,它表示如果||的任一側爲真,則整體表達式將被視爲真。所以你需要寫出完整的兩個條件,

if parole == word.downcase || parole == word.capitalize 

此外,它看起來像你誤會capitalizeupcasecapitalize返回一個字符串,確保第一個字母是大寫字母,其餘字母都是小寫字母,而upcase會在所有大寫字符中返回一個字符串。

所以,你可以使用:

if parole == word.downcase || parole == word.upcase 

這將只要parole在全部大寫或全部小寫輸入的工作。

或者,你可以確保parole是小寫:

parole = parole.downcase 

,然後將只需要一個條件:

if parole == word.downcase 

由於sagarpandya82提到有使用gsub等其他方法,但上述建議在修復原始代碼方面是最接近的。

+1

非常感謝你mikej,全都清楚! –

+0

@MarcoVanali如果你覺得這個答案有用,考慮點擊灰色的勾號來接受它,所以它變成綠色。 –

+0

我已經嘗試過了,但是我不能,因爲我沒有足夠的聲望。對不起。 –