2017-04-14 1 views
-2

Bonjour les gars j'étais tryng faire l'exercice de bonus 4.6Codecademy 4.6 exercice bonus

« Que pourriez-vous faire pour vous assurer que votre redactor redacts un mot, peu importe que ce soit le cas ou moins majuscules? »

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

Ceci est mon code

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 

Pourquoi est-ce mal? plz ne me donne pas un code totalement différent je voudrais comprendre pourquoi le mien est uncorrect, et comment serait correct, merci

+1

Veuillez lire "[ask]" et "[mcve]" et les pages liées. Lorsque vous posez la question, nous avons besoin que vous fassiez l'effort de rendre votre question lisible. Cela inclut correctement le formatage du contenu, ce qui nous aide à vous aider. Ne pas faire cet effort nous montre que vous ne respectez pas les efforts que nous mettons pour vous aider. En outre, SO n'est pas une liste de discussion ou un Tweet. Utilisez la grammaire appropriée. "plz ne pas ..."? –

Répondre

0

Je pense que la chose principale est que vous malentendu comment l'opérateur ou || est utilisé.

if parole == (word.downcase || word.capitalize) est pas un moyen de vérifier si parole est soit égal à word.downcaseou égal à word.capitalize. || est un opérateur qui dit qu'une expression globale est considérée comme vraie si l'un des côtés du || est vrai. Vous devez donc écrire les deux conditions dans leur intégralité, par ex.

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

, il semble aussi que vous êtes malentendu capitalize contre upcase. capitalize renvoie une chaîne en s'assurant que la première lettre est une lettre capitale et que le reste est en minuscule, alors que upcase renvoie une chaîne dans toutes les capitales.

Vous pouvez utiliser:

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

cela fonctionnerait aussi longtemps que parole est entré en majuscules ou en minuscules.

Sinon, vous pouvez vous assurer parole est en minuscules:

parole = parole.downcase 

et une seule condition serait nécessaire:

if parole == word.downcase 

Comme mentionné sagarpandya82 il y a d'autres approches utilisant gsub etc., mais les suggestions ci-dessus sont les plus proches en termes de fixation de votre code d'origine.

+1

Merci beaucoup mikej, tout est clair! –

+0

@MarcoVanali Si vous avez trouvé cette réponse utile, pensez à l'accepter en cliquant sur la coche grise afin qu'elle devienne verte. –

+0

J'ai essayé, mais je ne peux pas parce que je n'ai pas assez de réputation. Je suis désolé. –