2017-10-29 9 views
0

私はクリスパインの第6章ろう者大陪審の挑戦を通して働いています。しかし、これはDRYの原則に違反しているのだろうか?もしそうなら、私はどのようにそれをリファクタリングすることができますか?これは、より多くのDRYにリファクタリングする必要がありますか?

puts "WHAT DID YOU SAY??" 
said = gets.chomp 
x = 0 
bye_counter = 0 

while bye_counter < 3 
    if said != said.upcase 
    puts "HUH?! SPEAK UP, SONNY!" 
    said = gets.chomp 
    bye_counter = 0 

    elsif said == said.upcase && said != "BYE" 
    puts "NO, NOT SINCE " + rand(1930..1950).to_s + "!" 
    bye_counter = 0 
    said = gets.chomp 

    elsif said == "BYE" 
    puts "HUH??" 
    bye_counter += 1 
    break if bye_counter == 3 
    said = gets.chomp 
    end 
end 
puts "OH.. OK!" 

答えて

2

私のソリューション:

message = "WHAT DID YOU SAY??" 
bye_counter = 0 
puts message 

while bye_counter < 3 
    said = gets.chomp 
    if said == "BYE" 
    message = "HUH??" 
    bye_counter += 1 
    else 
    if said == said.upcase 
     message = "NO, NOT SINCE " + rand(1930..1950).to_s + "!" 
    else 
     message = "HUH?! SPEAK UP, SONNY!" 
    end 
    bye_counter = 0 
    end 
    break if bye_counter == 3 
    puts message 
end 
puts "OH.. OK!" 
関連する問題