पाठ 4: दोहराए जाने वाले व्यवहार
पिछले पाठ में, आपने देखा कि वीआर रोबोट द्वारा स्थितियों की जांच करने के लिए if कथनों का उपयोग कैसे किया जाता है। हालांकि, परियोजना की कार्यप्रणाली के कारण, if स्टेटमेंट के भीतर की शर्तों की जांच केवल एक बार की जाती है। इस पाठ में, आपको एक अनंत लूप से परिचित कराया जाएगा और यह बताया जाएगा कि इसका उपयोग डिस्क मेज़ चैलेंज को हल करने के लिए कैसे किया जा सकता है।

सीखने के परिणाम
- पहचानें कि एक अनंत while लूप, लूप के अंदर के व्यवहारों को हमेशा के लिए दोहराता है।
- बताइए कि किसी प्रोजेक्ट में उपयोग क्यों किया जाएगा।
- एकप्रोजेक्ट में प्रोजेक्ट फ्लो का वर्णन करें जिसमें एकलूप के अंदर कई इफ स्टेटमेंट हों
- बताइए कि if स्टेटमेंट का प्रयोग अनंत while लूप के साथ क्यों किया जाता है।
स्थितियों की बार-बार जाँच करना
जैसा कि पिछले पाठ में देखा गया है, if कथन केवल एक बार ही किसी शर्त की जाँच करता है। if कथनों में निहित शर्तों की बार-बार जाँच करने के लिए, प्रोजेक्ट को बार-बार शुरुआत में वापस जाना होगा। ऐसा करने के लिए, एक अनंत whileलूप की आवश्यकता है।
जबकि सत्य:
प्रतीक्षा (5, एमएसईसी)एक अनंत while लूप एक ऐसी स्थिति का उपयोग करता है जो हमेशा सत्य के रूप में मूल्यांकित होती है। जबकि लूप शर्त सही होने पर लूप के मुख्य भाग को निष्पादित करते हैं, इसलिए लूप के अंदर के आदेश अनंत रूप से दोहराए जाते हैं।
अनंत whileलूप और डिस्क भूलभुलैया समस्या
वीआर रोबोट को हमारी इच्छानुसार व्यवहार कराने और डिस्क भूलभुलैया में सफलतापूर्वक नेविगेट करने के लिए, वीआर रोबोट के प्लेग्राउंड में घूमने के दौरानयदिकथनों द्वारा निर्धारित शर्तों की बार-बार जाँच की जानी चाहिए। पूरे प्रोजेक्ट में एक अनंतwhileलूप जोड़ने से यह संभव हो जाएगा क्योंकि नीचे दिए गए प्रोजेक्ट में अनंत में निहितif स्टेटमेंट की बार-बार जाँच की जाती है जब तक कि प्रोजेक्ट बंद नहीं हो जाता
यहां दिए गए इंडेंटेशन पर ध्यान दें। सभी if कथन अनंत while लूप के भीतर होने के लिए इंडेंट किए गए हैं। अनंत while लूप का अंत wait कमांड द्वारा दर्शाया जाता है।
def main():
while True:
# यदि सामने वाली आंख हरे रंग का पता लगाती है तो दाएं मुड़ें
if front_eye.detect(GREEN):
drivetrain.turn_for(RIGHT, 90, DEGREES)
# यदि सामने वाली आंख नीले रंग का पता लगाती है तो बाएं मुड़ें
if front_eye.detect(BLUE):
drivetrain.turn_for(LEFT, 90, DEGREES)
# यदि सामने वाली आंख लाल रंग का पता लगाती है तो रुकें
if front_eye.detect(RED):
drivetrain.stop()
# यदि सामने वाली आंख किसी भी रंग का पता नहीं लगाती है तो आगे बढ़ें
if front_eye.detect(NONE):
drivetrain.drive(FORWARD)
wait(5, MSEC)पिछले पाठ के प्रोजेक्ट में, यदि कथनों के भीतर की शर्तों की जाँच केवल एक बार की गई थी। चूंकि यदि कथनों के भीतर की स्थितियों की जाँच केवल एक बार की गई थी, इसलिए वीआर रोबोट हमेशा के लिए आगे बढ़ता रहा क्योंकि परियोजना की शुरुआत में रंग का पता न चलने की स्थिति को सत्य बताया गया था।
अब जबकि अनंत जबकि लूप जोड़ा गया है, यदि कथनों की प्रत्येक शर्त की बार-बार जाँच की जाएगी।
- अनंतwhile लूप की स्थिति हमेशा सत्य होती है, और इसलिए अनंतwhile लूप के अंदर का कोड हमेशा निष्पादित होगा। यह प्रोजेक्ट के चलने के दौरान if स्टेटमेंट की शर्तों की लगातार जांच करेगा।
- याद कि लूप के ' 'इंडेंटेशन द्वारा दर्शाया जाता है
- प्रोजेक्ट के प्रवाह के दौरान, यदि यदि कथन की शर्त सत्य है, तो यदि कथन के अंदर के आदेश निष्पादित होते हैं। यदि यदि कथन की शर्त गलत है, तो यदि कथन के अंदर के आदेश निष्पादित नहीं होते हैं, और परियोजना का प्रवाह अगले आदेश पर जारी रहेगा। इससे वीआर रोबोट को एक निश्चित रंग का पता चलने पर मुड़ने या रुकने जैसे विशिष्ट व्यवहार करने में मदद मिलती है।
- यदि कथनों का उपयोग अनंत जबकिलूप के साथ किया जाता है ताकि यह सुनिश्चित किया जा सके कि स्थितियों की लगातार जाँच की जाती है, अनिवार्य रूप से यदिकथनों के प्रोजेक्ट प्रवाह को लूप के भीतर संयोजित किया जाता है।
इस पाठ के शेष भाग को जारी रखने के लिए अगला बटन चुनें।