तो, पायथन (हालांकि मुझे लगता है कि कई भाषाओं के लिए लागू किया जा सकता है) में, मैं अपने आप को कुछ इस तरह अक्सर साथ लगता है:छोटे कोड अतिरेक (स्वच्छ महसूस नहीं करता है)
the_input = raw_input("what to print?\n")
while the_input != "quit":
print the_input
the_input = raw_input("what to print?\n")
शायद मैं बहुत पसंद कर रहा हूं, लेकिन मुझे यह पसंद नहीं है कि लाइन the_input = raw_input("what to print?\n")
को दोहराया जाना है। यह रखरखाव और संगठन को कम करता है। लेकिन मुझे समस्या को और खराब किए बिना डुप्लिकेट कोड से बचने के लिए कोई कामकाज नहीं दिख रहा है। कुछ भाषाओं में, मैं कुछ इस तरह लिख सकते हैं:
while ((the_input=raw_input("what to print?\n")) != "quit") {
print the_input
}
यह निश्चित रूप से नहीं pythonic है, और अजगर भी पाश की स्थिति AFAIK भीतर कार्य के लिए अनुमति नहीं है।
यह मान्य कोड अतिरेक ठीक करता है,
while 1:
the_input = raw_input("what to print?\n")
if the_input == "quit":
break
print the_input
लेकिन बहुत सही या तो महसूस नहीं करता है। while 1
का तात्पर्य है कि यह पाश हमेशा के लिए चलेगा; मैं एक लूप का उपयोग कर रहा हूं, लेकिन इसे एक नकली हालत दे रहा हूं और असली अंदर डाल रहा हूं।
क्या मैं बहुत पसंद कर रहा हूं? क्या ऐसा करने के लिए इससे अच्छा तरीका है? शायद इसके लिए कुछ भाषा निर्माण तैयार किया गया है जिसे मैं नहीं जानता?
मुझे लगता है कि पहला फॉर्म पूरी तरह स्वीकार्य है। –
यह एक आम पैटर्न है जिसे [लूप और आधा] कहा जाता है (http://www.cs.duke.edu/~ola/patterns/plopd/loops.html#loop-and-a-half)। –