我是一個開發者訓練營的學生,在和我的一個項目的問題。我們使用Ruby來編寫豬拉丁文頁面。我得到它通過測試,直到它需要接受多個單詞的點:可以追加基於if語句條件數組中的特定元素?
def pig_latina(word)
# univeral variables
vowels = ['a','e','i','o','u']
user_output = ""
# adds 'way' if the word starts with a vowel
if vowels.include?(word[0])
user_output = word + 'way'
# moves the first consonants at the beginning of a word before a vowel to the end
else
word.split("").each_with_index do |letter, index|
if vowels.include?(letter)
user_output = word[index..-1] + word[0..index-1] + 'ay'
break
end
end
end
# takes words that start with 'qu' and moves it to the back of the bus and adds 'ay'
if word[0,2] == 'qu'
user_output = word[2..-1] + 'quay'
end
# takes words that contain 'qu' and moves it to the back of the bus and adds 'ay'
if word[1,2] == 'qu'
user_output = word[3..-1] + word[0] + 'quay'
end
# prints result
user_output
end
我不知道該怎麼做。這不是功課或任何東西。我試過
words = phrase.split(" ")
words.each do |word|
if vowels.include?(word[0])
word + 'way'
但我認爲else
聲明搞得一團糟。任何有識之士將不勝感激!謝謝!!
你的代碼是非常複雜的理解。而是告訴我們你想要的樣本串和預期輸出.. –
什麼是你的問題?我在底部代碼部分沒有看到else語句。 – squiguy
你的代碼混合了一些東西。您的總體分裂短語,單詞,將每個單詞,然後再結合的邏輯,正確的是(你可以用'phrase.split(「‘){.collect | W | pig_latina(W)}。加入(’」)' )。但是,處理這個詞的詳細代碼幾乎試圖處理短語,但不完全。您可能需要在每個「qu」個案之前都有一個「else」,因爲它們與前兩種情況相互排斥。其餘的看起來有點凌亂,但我認爲是健全的。 – lurker