2010-10-06 15 views
8

ठीक है, मैं अपनी दादी की रूबी सिमुलेशन लिखने की कोशिश कर रहा हूं। मैं जिस तरह से चाहूं काम करने के लिए लूप को काफी नहीं मिल सकता। मैं नानी प्रतिक्रिया देना चाहते हैंदादी के साथ रूबी लूप्स

"ओह, पीठ में (यादृच्छिक वर्ष) ... के बारे में मुझे याद दिलाता है कि"

जब आप उसके सभी बड़े अक्षरों में जवाब देने के लेकिन मैं यह भी उसकी प्रतिक्रिया देना चाहते हैं

"आप क्या कहते हैं ????"

जब आप सभी कैप्स का उपयोग नहीं करते हैं। मैं प्रत्येक को अलग से काम करने के लिए प्राप्त कर सकता हूं लेकिन मैं उसके पागल प्रतिक्रियाओं के साथ नानी का निरंतर लूप नहीं कर सकता। यहां कोड है:

puts 'HELLO SONNY! WHAT\'S NEW IN THE WHO\'S IT WHAT\'S IT?' 
response = gets.chomp 

while response == response.upcase 
    puts 'OH, THAT REMINDS ME OF BACK IN ' + (rand(50) + 1905).to_s + '...' 
    response = gets.chomp 
end 

while response != response.upcase 
    puts 'WHAT\'D YOU SAY????' 
    response = gets.chomp 
end 

कोई विचार?

+3

मेरे लॉन से निकल जाओ! –

+0

चूंकि आपने स्पष्ट रूप से रूबी सीखना शुरू किया (मैंने उसी ट्यूटोरियल के साथ शुरुआत की), मैं बस यह इंगित करना चाहता था कि यदि आप सिंगल कोट्स के बजाय डबल कोट्स का उपयोग करते हैं तो आपको स्ट्रिंग में वर्णों से बचने की ज़रूरत नहीं है। यह इन तरह की सरल परिस्थितियों में सुविधाजनक है। –

उत्तर

7

समस्या यह है कि एक बार जब आप पहली बार लूप से बाहर निकलेंगे, तो आप कभी वापस लौट नहीं रहे हैं। कुछ इस तरह का प्रयास करें:

while true 
    response = gets.strip 
    if response == response.upcase 
    puts msg1 
    else 
    puts msg2 
    end 
end 

यही कारण है, हमेशा के लिए चलाया जाएगा जब तक आप Ctrl-C के साथ आभासी-नानी को मारने के लिए निर्णय लेते हैं।

+0

ग्रेट, उसने उसे ठीक किया! .chomp पर .strip का उपयोग करने के लिए कोई उल्टा? – 585connor

+0

मुझे यह पसंद है क्योंकि यह किसी भी प्रकार की अग्रणी और पीछे वाली सफेद जगह है, जहां चंप सिर्फ पीछे की रेखाओं को खींचती है। इस मामले में, हालांकि, आपको वास्तव में या तो जरूरत नहीं है। – perimosocordiae

+0

"आभासी-दादी को मारो" - यह सिर्फ गलत है ... –

0

यह प्रोग्राम काम करता है, हालांकि मैं एक नोब हूं, इसलिए यह सबसे अच्छा तरीका नहीं हो सकता है। इसके अलावा मेरा गणित व्यावहारिक रूप से व्यावहारिक है, अन्य लोग रास्ता बेहतर है। :)

puts 'Talk to your grandma!' 

while true 
    say = gets.chomp 

    if say == say.downcase 
    puts 'WHAT DID YOU SAY? SPEAK UP!' 

    else say == say.upcase 
    puts "NO HONEY, NOT SINCE 19" + (rand(90) + 10).to_s 

    end 

    break if say == 'bye'.upcase 

end 
संबंधित मुद्दे