शर्त के साथ लूप स्टेटमेंट - जबकि


<शरीर> कार्यक्रम इस तरह दिखेगा: <पूर्व> ... स्थिर शून्य मुख्य () { int n = Convert.ToInt32(Console.ReadLine()); इंट काउंट = 0; जबकि (एन! = 0) { गिनती ++; एन = एन / 10; } } आपको इस प्रोग्राम को अच्छी तरह से जानने और समझने की आवश्यकता है, क्योंकि अंकों द्वारा गणना से संबंधित कई अन्य कार्य एक संख्या।

शर्त के साथ एक लूप। जबकि
कथन for लूप का अध्ययन करते हुए, हमने कहा कि यदि किसी क्रिया के दोहराव की संख्या ज्ञात है, तो आप for लूप ऑपरेटर का उपयोग करके प्रोग्राम को छोटा कर सकते हैं। लेकिन क्या होगा अगर दोहराव की संख्या अज्ञात है? और ऐसा अक्सर होता है।
 
उदाहरण
दशमलव संख्या प्रणाली से किसी अन्य में किसी संख्या के अनुवाद को याद करते हुए, हमें संख्या प्रणाली के आधार से संख्या (और फिर विभाजन का परिणाम) को तब तक विभाजित करना होगा जब तक कि हमें उत्तर में शून्य न मिल जाए। हम कितनी बार साझा करेंगे अज्ञात है। और ऐसे कई प्रोग्राम हैं जो इस तरह के एल्गोरिद्म को लागू करते हैं। 

अगर हम पुनरावृत्तियों की सटीक संख्या नहीं जानते हैं तो हम एल्गोरिद्म को कैसे लागू कर सकते हैं?

प्रोग्रामिंग में ऐसे मामलों के लिए, एक शर्त के साथ एक लूप स्टेटमेंट होता है। 
पायथन प्रोग्रामिंग भाषा में, एक कंडीशनल लूप स्टेटमेंट while शब्द से शुरू होता है और इसकी संरचना निम्न होती है।
जबकि (<स्थिति>) 
{
  लूप बॉडी
}

जैसा कि हम पहले से ही जानते हैं:
- स्थिति एक ऐसा व्यंजक है जो सत्य या असत्य का मूल्यांकन कर सकता है (जैसा कि एक सशर्त कथन में);
- लूप बॉडी दोहराए जाने वाले कमांड होते हैं, वे इंडेंट होते हैं।

ऑपरेटर कैसे काम करता है?
1. सबसे पहले, प्रोग्राम शब्द <कोड>जबकि के बाद कोष्ठक में स्थिति का मूल्यांकन करता है। यदि शर्त पूरी होती है (सत्य), तो प्रोग्राम लूप बॉडी में निहित बयानों को निष्पादित करता है।
2. लूप बॉडी का निष्पादन पूरा होने के बाद, प्रोग्राम स्थिति की जांच करने के लिए वापस आता है और इसे फिर से जांचता है।
3. ये क्रियाएं (स्थिति की जांच - लूप बॉडी को निष्पादित करना) तब तक दोहराई जाती हैं जब तक कि स्थिति झूठी नहीं हो जाती।
4. अगर इस स्टेटमेंट के पहले एक्जीक्यूशन के दौरान कंडीशन तुरंत पूरी (गलत) नहीं होती है, तो प्रोग्राम लूप बॉडी को कभी भी एक्जीक्यूट नहीं करेगा।

इस ऑपरेटर के काम का विश्लेषण करते हुए, यह स्पष्ट हो जाना चाहिए कि लूप बॉडी में एक ऑपरेटर होना चाहिए जो स्थिति को प्रभावित करता हो।
उदाहरण के लिए, एक लूप में, किसी स्थिति में उपयोग किए गए वेरिएबल का मान बढ़ाया जा सकता है।

प्रोग्राम का एक उदाहरण जिसे हम "साइलेंट काउंट" कहेंगे।
आइए, हमारी बजाय प्रोग्राम की गिनती करें, उदाहरण के लिए, 10 तक।
कार्यक्रम को "प्रारंभ" और "समाप्त", और इन क्रियाओं के बीच उन संख्याओं को प्रदर्शित करते हैं जिनकी गणना की जा रही है।

उदाहरण के लिए, इस तरह:
शुरू
1 2 3 4 5 6 7 8 9 10
समाप्त

जबकि लूप का उपयोग करने वाला प्रोग्राम इस तरह दिखेगा: सिस्टम का उपयोग करना; वर्ग कार्यक्रम {     स्थैतिक शून्य मुख्य () {         कंसोल.राइटलाइन ("प्रारंभ");         इंट आई = 1;         जबकि (मैं <= 10) {             कंसोल.राइटलाइन (i);             मैं++;         }         कंसोल.राइटलाइन ("समाप्त");     } } इस प्रोग्राम में, हम वेरिएबल i = 1 - शुरुआती बिंदु के लिए एक मान निर्दिष्ट करते हैं।
इसके अलावा, जब तक वेरिएबल i  का मान हमारे लिए आवश्यक मान से अधिक (अर्थात, उससे कम या बराबर) नहीं है, हम:
 1) वेरिएबल i;
का मान प्रदर्शित करता है  2) i  चर के मान को 1 से बढ़ाएं - यह ऑपरेटर कोष्ठक में स्थिति के मान को प्रभावित करता है। वेरिएबल i  को बढ़ा दिया गया है, जिसका अर्थ है कि किसी बिंदु पर स्थिति i <= 10 झूठी हो जाएगी। यह तब होगा जब i 11 के बराबर हो। इस स्थिति में, लूप बॉडी को निष्पादित नहीं किया जाएगा, और प्रोग्राम लूप के बाद अगले स्टेटमेंट को निष्पादित करेगा, जो कि,  Console.WriteLine("Finish") है।

आइए निम्नलिखित समस्या को हल करने के लिए एक प्रोग्राम लिखने का प्रयास करें: आपको एक संख्या दर्ज करने की आवश्यकता है और उसमें अंकों की संख्या निर्धारित करें।

समाधान विचार।
हमें बस संख्या से अंतिम अंक को क्रमिक रूप से काटने की आवश्यकता है (यह संख्या को 10 गुना कम करके, 10 से पूर्णांक विभाजन का उपयोग करके किया जा सकता है), और हर बार हमें काउंटर बढ़ाने की आवश्यकता होती है। 
नतीजतन, जब हम सभी नंबरों को काट देते हैं, तो काउंटर अंकों की संख्या को संख्या में संग्रहीत कर लेगा।
दूसरे तरीके से, एल्गोरिथम को निम्नानुसार तैयार किया जा सकता है: जबकि संख्या शून्य के बराबर नहीं है, इसे 10 गुना घटाएं और काउंटर को 1 बढ़ा दें।
<तालिका संरेखण = "केंद्र" सीमा = "1" सेलपैडिंग = "1" सेलस्पेसिंग = "1"> <सिर>
संख्या (n) काउंटर
123> 0>
12> 1>
1> 2>
0> 3>

कार्य

प्रोग्राम का इनपुट डेटा स्ट्रीम है — पूर्णांकों का एक क्रम जो शून्य में समाप्त होता है (शून्य अनुक्रम में शामिल नहीं है)। आपको इस अनुक्रम के तत्वों का योग खोजने की आवश्यकता है।
 
एल्गोरिद्म हल करना
<पूर्व> योग = 0 इनपुट एक्स // पहला नंबर दर्ज करें जबकि x != 0 // इनपुट एंड साइन स्थिति में सेट है,  एनसी // यानी जब तक आप शून्य दर्ज नहीं करते    sum = sum + x // आप मूल संख्या के साथ कुछ कर सकते हैं। // आप कुछ शर्त आदि के लिए एक नंबर चेक जोड़ सकते हैं।    इनपुट x // अगला नंबर दर्ज करें के.टी.एस. प्रिंट राशि // परिणाम आउटपुट