दीर्घ संस्करण...
एक सहकर्मी ने आज while (1)
एक पर्ल लिपि में मेरे प्रयोग को देखने के बाद जोर दिया for (;;)
। मैंने तर्क दिया कि उन्हें उम्मीद है कि दुभाषिया किसी भी मतभेद का अनुकूलन करेगा। मैंने एक स्क्रिप्ट स्थापित की जो लूप पुनरावृत्तियों के लिए 1,000,000,000 चलाएगी और लूप की समान संख्या और बीच के समय को रिकॉर्ड करेगी। मुझे कोई सराहनीय अंतर नहीं मिला। मेरे सह-कार्यकर्ता ने कहा कि एक प्रोफेसर ने उनसे कहा था कि while (1)
तुलना कर रहे थे 1 == 1
और for (;;)
नहीं कर रहे थे। हमने सी + + के साथ पुनरावृत्तियों की संख्या 100x के साथ एक ही परीक्षण दोहराया और अंतर नगण्य था। हालांकि यह एक ग्राफिक उदाहरण था कि एक स्क्रिप्टिंग भाषा बनाम कितना तेज संकलित कोड हो सकता है।
लघु संस्करण...
वहाँ एक पसंद करते हैं किसी भी कारण है while (1)
एक से अधिक for (;;)
है, तो आप एक अनंत लूप से बाहर तोड़ने के लिए की जरूरत है?
नोट: यदि यह प्रश्न से स्पष्ट नहीं है। यह विशुद्ध रूप से दोस्तों के एक जोड़े के बीच एक मजेदार अकादमिक चर्चा थी। मुझे पता है कि यह एक सुपर महत्वपूर्ण अवधारणा नहीं है जिसे सभी प्रोग्रामर को समझाना चाहिए। सभी महान उत्तरों के लिए धन्यवाद (और मुझे यकीन है कि अन्य) इस चर्चा से कुछ चीजें सीख चुके हैं।
अद्यतन: उपर्युक्त सह-कार्यकर्ता नीचे एक प्रतिक्रिया के साथ तौला।
यदि उसे दफनाया जाता है तो यहां उद्धृत किया जाता है।
यह एक एएमडी विधानसभा प्रोग्रामर से आया था। उन्होंने कहा कि सी प्रोग्रामर (कवि) को एहसास नहीं है कि उनके कोड में अक्षमताएं हैं। उन्होंने कहा कि आज, जीसीसी संकलक बहुत अच्छे हैं, और उनके जैसे लोगों को व्यवसाय से बाहर कर देते हैं। उन्होंने उदाहरण के लिए कहा, और मुझे
while 1
बनाम के बारे में बतायाfor(;;)
। मैं इसका उपयोग अब आदत से बाहर कर रहा हूं, लेकिन जीसीसी और विशेष रूप से दुभाषिए इन दोनों दिनों के लिए एक ही ऑपरेशन (एक प्रोसेसर जंप) करेंगे, क्योंकि वे अनुकूलित हैं।