पाठ 2: परियोजना के बाद का सारांश
[If then else] ब्लॉक का उपयोग इसलिए किया जाता है ताकि VR रोबोट निर्णय ले सके। यदि बूलियन शर्त सत्य है, तो 'इफ देन' शाखा के अंदर के ब्लॉक चलेंगे। यदि बूलियन कंडीशन FALSE है, तो 'Else' ब्रांच के अंदर के ब्लॉक चलेंगे।

इस प्रोजेक्ट में, वीआर रोबोट एक इमारत की ओर तब चला जब डिस्टेंस सेंसर ने एक वस्तु का पता लगाया और <Distance found object> ब्लॉक ने TRUE के रूप में रिपोर्ट किया। इससे प्रोजेक्ट की 'इफ देन' शाखा को चलाने का निर्देश मिला। इस शाखा में [ड्राइव] ब्लॉक शामिल है। इसके बाद वीआर रोबोट प्रोजेक्ट की 'एल्स' शाखा को छोड़ देता है।

क्योंकि [If then else] ब्लॉक को [Forever] ब्लॉक के अंदर रखा गया है, इसलिए प्रोजेक्ट [If then else] ब्लॉक की स्थिति की जांच करने के लिए [Forever] ब्लॉक के शीर्ष पर वापस लूप करता है। यह चक्र अनंत काल तक चलता रहेगा, जिससे वीआर रोबोट को प्रति सेकंड सैकड़ों बार [यदि तब अन्यथा] स्थिति की लगातार जांच करने का निर्देश मिलता रहेगा।
ध्यान दें कि [If then else] ब्लॉक के अंदर मौजूद [Drive] और [Turn] ब्लॉक नॉन-वेटिंग ब्लॉक हैं। नॉन-वेटिंग ब्लॉक चलते समय प्रोजेक्ट के प्रवाह को नहीं रोकते हैं। एक गैर-प्रतीक्षा व्यवहार जो [If then else] ब्लॉक में निष्पादित होता है (जैसे कि वस्तु का पता चलने पर आगे बढ़ना) स्थिति की जाँच होने तक जारी रहेगा, और केवल तभी बदलेगा जब स्थिति बदलेगी।

यदि <Distance found object> ब्लॉक FALSE रिपोर्ट करता है, तो प्रोजेक्ट की 'Else' शाखा निष्पादित होती है। 'Else' शाखा में [Turn] ब्लॉक शामिल है।

आपकी जानकारी के लिए
[If then else] ब्लॉक का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि शर्त की जांच करते समय प्रोजेक्ट में केवल एक ही शाखा चले। किसी भी समय केवल एक ही स्थिति या शर्त सत्य हो सकती है। इससे परियोजना अधिक कुशल हो जाती है।

वर्तमान प्रोजेक्ट की तुलना यूनिट 7 में बनाए गए प्रोजेक्ट से करें। यूनिट 7 परियोजना में चार [यदि तब] ब्लॉक का उपयोग किया गया है।

जब किसी प्रोजेक्ट को कई [If then] ब्लॉकों के साथ चलाया जाता है, तो यह संभव हो सकता है कि कई शर्तें TRUE रिपोर्ट करें और प्रोजेक्ट [Forever] ब्लॉक में कमांड के माध्यम से चलता रहे। इस प्रोजेक्ट में, एक ही [फॉरएवर] लूप के दौरान दोनों स्थितियां TRUE रिपोर्ट कर सकती हैं। इस तरह के टकराव के कारण परियोजना रुक सकती है या धीमी गति से चल सकती है।

[If then else] ब्लॉक का उपयोग करने से इस तरह की बग से बचा जा सकता है क्योंकि इस ब्लॉक में किसी भी समय केवल एक ही शर्त सही हो सकती है।
