व्यायाम - पुनरावृत्ति छोरों के लिए बनाएं और कॉन्फ़िगर करें
- {नंबरऑफमिनट} मिनट
सतह पर, for कथन एक और पुनरावृत्ति कथन है जो आपको कोड ब्लॉक के माध्यम से पुनरावृति करने की अनुमति देता है और इस तरह आपके कोड के निष्पादन के प्रवाह को बदलता है। हालांकि, एक बार जब हम जांच करते हैं कि प्रत्येक कैसे काम करता है, तो हम प्रत्येक पुनरावृत्ति कथन की बारीकियों की बेहतर पहचान कर सकते हैं और उनका उपयोग कब कर सकते हैं।
वक्तव्य क्या है for ?
for कथन एक कोड ब्लॉक के माध्यम से एक विशिष्ट संख्या में पुनरावृत्त होता है। नियंत्रण का यह स्तर कथन को for अन्य पुनरावृत्ति कथनों के बीच अद्वितीय बनाता है।
foreach कथन एक सरणी या संग्रह जैसे डेटा के अनुक्रम में प्रत्येक आइटम के लिए एक बार कोड के ब्लॉक के माध्यम से पुनरावृत्त होता है।
while एक शर्त पूरी होने तक कथन कोड के एक ब्लॉक के माध्यम से दोहराता है।
इसके अलावा, for कथन आपको पुनरावृत्ति की शर्तों को उजागर करके पुनरावृत्ति की प्रक्रिया पर अधिक नियंत्रण देता है।
इस अभ्यास में, आप कथन का for उपयोग करेंगे, पुनरावृत्ति की पूर्व-शर्त, पूर्णता की स्थिति, इसके पुनरावृत्ति पैटर्न और अधिक को नियंत्रित करना सीखेंगे। इसके अलावा, आप कथन के लिए सामान्य उपयोग के मामलों के बारे में for जानेंगे।
ठीक है, अब आइए अपना कोडिंग वातावरण तैयार करें और एक for कथन को लागू करने वाले कोड नमूनों की हमारी परीक्षा शुरू करें।
अपना कोडिंग वातावरण तैयार करें
इस मॉड्यूल में हाथों पर गतिविधियां शामिल हैं जो आपको प्रदर्शन कोड बनाने और चलाने की प्रक्रिया के माध्यम से मार्गदर्शन करती हैं। हम आपको Visual Studio Code का उपयोग करके अपने विकास परिवेश के रूप में इन गतिविधियों को पूरा करने के लिए प्रोत्साहित करते हैं. इन गतिविधियों के लिए Visual Studio Code का उपयोग करने से आपको विश्वभर के पेशेवरों द्वारा उपयोग किए जाने वाले डेवलपर परिवेश में कोड लिखने और चलाने में अधिक सहज बनने में मदद मिलेगी.
Visual Studio कोड खोलें।
Visual Studio कोड खोलने के लिए आप Windows प्रारंभ मेनू (या किसी अन्य OS के लिए समकक्ष संसाधन) का उपयोग कर सकते हैं।
Visual Studio कोड फ़ाइल मेनू पर, खोलें फ़ोल्डर का चयन करें।
फ़ोल्डर खोलें संवाद में, Windows डेस्कटॉप फ़ोल्डर में नेविगेट करें.
यदि आपके पास एक अलग फ़ोल्डर स्थान है जहां आप कोड प्रोजेक्ट रखते हैं, तो आप इसके बजाय उस फ़ोल्डर स्थान का उपयोग कर सकते हैं। इस प्रशिक्षण के लिए, महत्वपूर्ण बात यह है कि एक ऐसा स्थान होना चाहिए जो पता लगाना और याद रखना आसान हो।
फ़ोल्डर खोलें संवाद में, फ़ोल्डर का चयन करें का चयन करें.
यदि आपको यह पूछने वाला सुरक्षा संवाद दिखाई देता है कि क्या आप लेखकों पर विश्वास करते हैं, तो हाँ चुनें.
Visual Studio कोड टर्मिनल मेनू पर, नया टर्मिनल का चयन करें।
ध्यान दें कि टर्मिनल पैनल में एक कमांड प्रॉम्प्ट वर्तमान फ़ोल्डर के लिए फ़ोल्डर पथ प्रदर्शित करता है। उदाहरण के लिए:
C:\Users\someuser\Desktop>नोट
यदि आप सैंडबॉक्स या होस्ट किए गए वातावरण के बजाय अपने स्वयं के PC पर कार्य कर रहे हैं और आपने इस C# श्रृंखला में अन्य Microsoft Learn मॉड्यूल पूर्ण कर लिए हैं, तो हो सकता है कि आपने कोड नमूनों के लिए पहले से ही कोई प्रोजेक्ट फ़ोल्डर बना लिया हो. यदि ऐसा है, तो आप अगले चरण को छोड़ सकते हैं, जिसका उपयोग TestProject फ़ोल्डर में कंसोल ऐप बनाने के लिए किया जाता है।
टर्मिनल कमांड प्रॉम्प्ट पर, निर्दिष्ट फ़ोल्डर में एक नया कंसोल अनुप्रयोग बनाने के लिए, निम्न संकेत दर्ज करें:
dotnet new console -o ./CsharpProjects/TestProjectयह .NET CLI आदेश निर्दिष्ट फ़ोल्डर स्थान में एक नया C# कंसोल अनुप्रयोग प्रोजेक्ट बनाने के लिए .NET प्रोग्राम टेम्पलेट का उपयोग करता है। आदेश आपके लिए CsharpProjects और TestProject फ़ोल्डर बनाता है, और आपकी
.csprojफ़ाइल के नाम के रूप में TestProject का उपयोग करता है।यदि कोई संदेश प्रदर्शित होता है जो आपको बताता है कि फ़ाइलें पहले से मौजूद हैं, तो अगले चरणों के साथ जारी रखें। आप मौजूदा प्रोजेक्ट फ़ाइलों का पुन: उपयोग करेंगे।
EXPLORER दृश्य में, CsharpProjects फ़ोल्डर का विस्तार करें।
आप TestProject फ़ोल्डर और दो फ़ाइलें, Program.cs नामक एक C# प्रोग्राम फ़ाइल और TestProject.csproj नामक C# प्रोजेक्ट फ़ाइल देखना चाहिए।
Visual Studio कोड फ़ाइल मेनू पर, खोलें फ़ोल्डर का चयन करें।
फ़ोल्डर खोलें संवाद में, CsharpProjects फ़ोल्डर का चयन करें, और उसके बाद फ़ोल्डर का चयन करेंका चयन करें।
EXPLORER दृश्य में, TestProject फ़ोल्डर का विस्तार करें, और उसके बाद Program.cs का चयन करें।
मौजूदा कोड पंक्तियों को हटाएँ।
आप इस मॉड्यूल के दौरान कोड नमूने बनाने, बनाने और चलाने के लिए इस सी # कंसोल प्रोजेक्ट का उपयोग करेंगे।
टर्मिनल पैनल बंद करें।
कथन के लिए एक बुनियादी लिखें
सुनिश्चित करें कि आपके पास विजुअल स्टूडियो कोड खुला है और संपादक पैनल में प्रदर्शित Program.cs है।
नोट
Program.cs खाली होना चाहिए। यदि नहीं है, तो सभी कोड लाइनों का चयन करें और हटाएं।
Visual Studio कोड संपादक में निम्न कोड टाइप करें।
for (int i = 0; i < 10; i++) { Console.WriteLine(i); }यह कोड एक साधारण
forकथन प्रस्तुत करता है जो अपने कोड ब्लॉक के माध्यम से 10 बार लूप करता है, के वर्तमान मूल्य को प्रिंट करता हैi।Visual Studio Code फ़ाइल मेनू पर, सहेजेंका चयन करें।
कोड बनाने या चलाने से पहले Program.cs फ़ाइल को सहेजा जाना चाहिए।
EXPLORER पैनल में, अपने TestProject फ़ोल्डर स्थान पर कोई टर्मिनल खोलने के लिए, TestProject राइट-क्लिक करें, और उसके बाद एकीकृत टर्मिनल में खोलेंका चयन करें।
एक टर्मिनल पैनल खुलेगा। टर्मिनल आपके TestProject फ़ोल्डर स्थान के लिए खुला है दिखा एक कमांड प्रॉम्प्ट शामिल करना चाहिए।
टर्मिनल कमांड प्रॉम्प्ट पर, अपना कोड चलाने के लिए, डॉटनेट रन टाइप करें और फिर एंटर दबाएं।
नोट
यदि आप "चलाने के लिए कोई प्रोजेक्ट नहीं ढूँढ सका" कहते हुए एक संदेश देखते हैं, तो सुनिश्चित करें कि टर्मिनल कमांड प्रॉम्प्ट अपेक्षित TestProject फ़ोल्डर स्थान प्रदर्शित करता है। उदाहरण के लिए:
C:\Users\someuser\Desktop\csharpprojects\TestProject>आपको निम्न आउटपुट देखना चाहिए।
0 1 2 3 4 5 6 7 8 9बयान के छह भागों की पहचान करने के लिए एक मिनट का
forसमय लें।कथन में
forनिम्नलिखित छह भाग शामिल हैं:-
forकीवर्ड. - कोष्ठकों का एक सेट जो पुनरावृत्ति की
forशर्तों को परिभाषित करता है। कोष्ठक में तीन अलग-अलग भाग होते हैं, जो कथन ऑपरेटर के अंत से अलग होते हैं, एक अर्ध-बृहदान्त्र। - पहला भाग इटरेटर चर को परिभाषित और इनिशियलाइज़ करता है। इस उदाहरण में:
int i = 0. इस खंड को प्रारंभकर्ता के रूप में जाना जाता है। - दूसरा भाग पूर्णता की स्थिति को परिभाषित करता है। इस उदाहरण में:
i < 10. दूसरे शब्दों में, रनटाइम कथन के नीचेforकोड ब्लॉक में कोड पर पुनरावृति करना जारी रखेगा, जबकिiइससे10कम है। जबiइसके बराबर हो जाता है10, तो रनटाइम स्टेटमेंट के कोड ब्लॉक को निष्पादित करना बंद कर देता हैfor। डॉक्स इस खंड को स्थिति के रूप में संदर्भित करते हैं। - तीसरा भाग प्रत्येक पुनरावृत्ति के बाद की जाने वाली कार्रवाई को परिभाषित करता है। इस मामले में, प्रत्येक पुनरावृत्ति के बाद,
i++1 केiमूल्य में वृद्धि होगी। डॉक्स इस खंड को इटरेटर के रूप में संदर्भित करते हैं। - अंत में, कोड ब्लॉक। कोड ब्लॉक में वह कोड होता है जिसे प्रत्येक पुनरावृत्ति के लिए निष्पादित किया जाएगा। ध्यान दें कि का
iमान कोड ब्लॉक के अंदर संदर्भित है। डॉक्स इस खंड को शरीर के रूप में संदर्भित करते हैं।
चर नामकरण के लिए हमारे नियमों को देखते हुए, आपको आश्चर्य हो सकता है कि क्या
iवर्तमान पुनरावृत्ति रखने वाले चर के लिए एक वैध नाम है। इस मामले में,iअधिकांश द्वारा मान्य माना जाता है। अन्य लोकप्रिय विकल्प हैंxऔरcounter. नामjका उपयोग उन स्थितियों में भी किया जाता है जब आपके पास एक बाहरीforकथन होता है जो उपयोग करताiहै , और एक आंतरिकforकथन के लिए एक पुनरावृत्ति चर बनाने की आवश्यकता होती है।नोट
सभी तीन खंड (प्रारंभिक, स्थिति और इटरेटर) वैकल्पिक हैं। हालांकि, व्यवहार में, आमतौर पर सभी तीन वर्गों का उपयोग किया जाता है।
-
पुनरावृत्ति की स्थिति बदलें
जैसा कि हमने शुरुआत में कहा था, पुनरावृत्ति बयानों के बीच कथन में for दो अद्वितीय गुण हैं।
- कथन का
forउपयोग तब किया जाना चाहिए जब आप जानते हैं कि आपको समय से पहले कोड के ब्लॉक के माध्यम से कितनी बार पुनरावृति करने की आवश्यकता है। -
forकथन आपको प्रत्येक पुनरावृत्ति को संभालने के तरीके को नियंत्रित करने की अनुमति देता है।
क्या होगा यदि हमें कोड के ब्लॉक के माध्यम से पुनरावृति करने की आवश्यकता है, लेकिन गिनती करने के बजाय गिनना चाहते हैं?
निम्नानुसार अपने कोड को अद्यतन करने के लिए Visual Studio कोड संपादक का उपयोग करें:
for (int i = 10; i >= 0; i--) { Console.WriteLine(i); }अपने अपडेट किए गए कोड की समीक्षा करने के लिए कुछ मिनट का समय लें.
कथन के तीन भागों को बदलकर, हम इसके व्यवहार को
forबदलते हैं।- हम पुनरावृत्ति चर को 10 पर इनिशियलाइज़ करते हैं।
- हम कथन से बाहर निकलने के
forलिए पूर्णता की स्थिति को बदलते हैं जबiइससे0कम होता है। - हम हर बार जब हम एक पुनरावृत्ति को पूरा करते हैं तो घटाने
1iके लिए इटरेटर के पैटर्न को बदलते हैं।
अपनी कोड फ़ाइल सहेजें, और उसके बाद अपना कोड चलाने के लिए Visual Studio कोड का उपयोग करें।
अपना कोड चलाने के लिए टर्मिनल कमांड प्रॉम्प्ट से दर्ज
dotnet runकरें।ध्यान दें कि आउटपुट बदल गया है।
जब आप कोड चलाते हैं, तो आपको निम्न आउटपुट दिखाई देगा।
10 9 8 7 6 5 4 3 2 1 0
इटरेटर के पैटर्न के साथ प्रयोग करें
क्या होगा यदि हम इटरेटर चर में पिछले कुछ मूल्यों को छोड़ना चाहते हैं?
निम्नानुसार अपने कोड को अद्यतन करने के लिए Visual Studio कोड संपादक का उपयोग करें:
for (int i = 0; i < 10; i += 3) { Console.WriteLine(i); }अपने अपडेट किए गए कोड की समीक्षा करने के लिए कुछ मिनट का समय लें.
इटरेटर वेरिएबल
1के मूल्य को बढ़ाने या घटाने के बजाय, हम प्रत्येक पुनरावृत्ति के बाद दो मानों को छोड़ने के लिए उपयोग करतेi += 3हैं।अपनी कोड फ़ाइल सहेजें, और उसके बाद अपना कोड चलाने के लिए Visual Studio कोड का उपयोग करें।
अपना कोड चलाने के लिए टर्मिनल कमांड प्रॉम्प्ट से दर्ज
dotnet runकरें।ध्यान दें कि आउटपुट कैसे बदल गया है।
जब आप कोड चलाते हैं, तो आपको निम्न आउटपुट दिखाई देगा।
0 3 6 9माना जाता है कि आप अक्सर इस तरह की चीज नहीं करेंगे, लेकिन उम्मीद है कि आप इस बात की सराहना कर सकते हैं कि आपके पास पुनरावृत्तियों पर नियंत्रण का एक अच्छा स्तर है, आपको कभी भी इसकी आवश्यकता होनी चाहिए।
पुनरावृत्ति कथन को तोड़ने के लिए विराम कीवर्ड का उपयोग करें
क्या होगा यदि हमें किसी शर्त के आधार पर समय से पहले पुनरावृत्ति कथन से बाहर निकलने की आवश्यकता है? हम कीवर्ड का break उपयोग कर सकते हैं।
निम्नानुसार अपने कोड को अद्यतन करने के लिए Visual Studio कोड संपादक का उपयोग करें:
for (int i = 0; i < 10; i++) { Console.WriteLine(i); if (i == 7) break; }अपने अपडेट किए गए कोड में कीवर्ड के उपयोग की समीक्षा करने के
breakलिए एक मिनट का समय लें।हमने पहली बार मॉड्यूल में कीवर्ड देखा
break"सी # में स्विच-केस निर्माण का उपयोग करके कोड के प्रवाह को शाखा दें"। जैसा कि यह पता चला है, हम पुनरावृत्ति कथनों से बाहर निकलने केbreakलिए कीवर्ड का उपयोग कर सकते हैं।अपनी कोड फ़ाइल सहेजें, और उसके बाद अपना कोड चलाने के लिए Visual Studio कोड का उपयोग करें।
अपना कोड चलाने के लिए टर्मिनल कमांड प्रॉम्प्ट से दर्ज
dotnet runकरें।ध्यान दें कि आउटपुट कैसे बदल गया है।
जब आप कोड चलाते हैं, तो आपको निम्न आउटपुट दिखाई देगा।
0 1 2 3 4 5 6 7
एक सरणी के प्रत्येक तत्व के माध्यम से लूप
कथन के for लिए एक सामान्य उपयोग तत्वों की एक सरणी के माध्यम से पुनरावृति करना है, खासकर यदि आपको पुनरावृत्ति होने के तरीके पर कुछ नियंत्रण की आवश्यकता है। जबकि सरणी के प्रत्येक तत्व के foreach माध्यम से पुनरावृत्त होता है, कथन को for अधिक अनुकूलन प्रदान करने के लिए ट्विक किया जा सकता है।
निम्नानुसार अपने कोड को अद्यतन करने के लिए Visual Studio कोड संपादक का उपयोग करें:
string[] names = { "Alex", "Eddie", "David", "Michael" }; for (int i = names.Length - 1; i >= 0; i--) { Console.WriteLine(names[i]); }अपने अपडेट किए गए कोड की समीक्षा करने के लिए कुछ मिनट का समय लें.
सबसे पहले, ध्यान दें कि हमने एक स्ट्रिंग सरणी नाम
namesदिया है जिसमें चार नाम हैं।अगला, ध्यान दें कि हम सरणी में तत्वों की संख्या प्राप्त करने के लिए संपत्ति का उपयोग कर
Array.Lengthरहे हैं, और हम इस मान का उपयोग अपने इटरेटर चर ()int i = names.Length - 1को प्रारंभ करने के लिए कर रहे हैं। हम मान से 1 घटाते हैं क्योंकि सरणी तत्वों के लिए सूचकांक संख्या शून्य-आधारित है (चार तत्वों की सूचकांक संख्या 0-3 है)।अंत में, ध्यान दें कि हमने सरणी के माध्यम से पीछे की ओर पुनरावृति को चुना है - ऐसा कुछ जो हम कथन के साथ करने में
foreachअसमर्थ हैं। हम सरणी तत्वों ()names[i]की सूचकांक संख्या निर्दिष्ट करने के लिए कोड ब्लॉक के अंदर पुनरावृत्ति चर के मूल्य का उपयोग करते हैं।अपनी कोड फ़ाइल सहेजें, और उसके बाद अपना कोड चलाने के लिए Visual Studio कोड का उपयोग करें।
अपना कोड चलाने के लिए टर्मिनल कमांड प्रॉम्प्ट से दर्ज
dotnet runकरें।ध्यान दें कि सरणी तत्व रिवर्स ऑर्डर में सूचीबद्ध हैं (जैसा कि हम इरादा रखते हैं)।
जब आप कोड चलाते हैं, तो आपको निम्न आउटपुट दिखाई देगा।
Michael David Eddie Alexनोट
हम कथन का निर्माण
forकरके सरणी तत्वों के माध्यम से आगे बढ़ सकते थे:for (int i = 0; i < names.Length; i++).
foreach कथन की सीमा की जाँच करें
क्या होगा यदि आप पुनरावृत्ति के दौरान foreach सरणी में मान अपडेट करना चाहते हैं?
निम्नानुसार अपने कोड को अद्यतन करने के लिए Visual Studio कोड संपादक का उपयोग करें:
string[] names = { "Alex", "Eddie", "David", "Michael" }; foreach (var name in names) { // Can't do this: if (name == "David") name = "Sammy"; }अपनी कोड फ़ाइल सहेजें, और उसके बाद अपना कोड चलाने के लिए Visual Studio कोड का उपयोग करें।
अपना कोड चलाने के लिए टर्मिनल कमांड प्रॉम्प्ट से दर्ज
dotnet runकरें।प्रदर्शित होने वाले त्रुटि संदेश पर ध्यान दें।
यदि आप इस कोड को संकलित करने और चलाने का प्रयास करते हैं, तो आपको एक अपवाद दिखाई देगा।
Cannot assign to name because it is a 'foreach iteration variable'दूसरे शब्दों में, आप के
nameमूल्य को पुनः असाइन नहीं कर सकते क्योंकि यह पुनरावृत्ति के आंतरिक कार्यान्वयन काforeachहिस्सा है।
foreach स्टेटमेंट की सीमा को पार करते हुए for स्टेटमेंट का उपयोग करना
आइए पुनरावृत्ति कोड ब्लॉक के अंदर एक सरणी की सामग्री को संशोधित करने के लिए एक for कथन का उपयोग करने का प्रयास करें।
निम्नानुसार अपने कोड को अद्यतन करने के लिए Visual Studio कोड संपादक का उपयोग करें:
string[] names = { "Alex", "Eddie", "David", "Michael" }; for (int i = 0; i < names.Length; i++) if (names[i] == "David") names[i] = "Sammy"; foreach (var name in names) Console.WriteLine(name);अपने अपडेट किए गए कोड की समीक्षा करने के लिए कुछ मिनट का समय लें.
ध्यान दें कि हमने कोड ब्लॉक से घुंघराले ब्रेसिज़ को हटा दिया है जिसमें कोड की केवल एक पंक्ति थी। यह संशोधन उसी तकनीक का उपयोग करता है जिसके बारे में हमने मॉड्यूल में बात की थी "सी # में कोड ब्लॉक का उपयोग करके चर गुंजाइश और तर्क को नियंत्रित करें"। कई डेवलपर्स को इस शैली को पढ़ना मुश्किल लगता है, जबकि अन्य इस संक्षिप्त शैली को पसंद करते हैं क्योंकि यह उन्हें अधिक संक्षिप्त और अधिक स्पष्ट रूप से लिखने में मदद करता है। यदि आपको इस कोड को पढ़ना मुश्किल लगता है, या यदि आप इस शैली को पसंद नहीं करते हैं, तो आश्वस्त रहें कि घुंघराले ब्रेसिज़ हमेशा आपके कोड ब्लॉक में उपयोग किए जा सकते हैं। यदि आप चाहें, तो निम्न कोड के साथ संपादक पैनल में कोड अद्यतन करें:
string[] names = { "Alex", "Eddie", "David", "Michael" }; for (int i = 0; i < names.Length; i++) { if (names[i] == "David") { names[i] = "Sammy"; } } foreach (var name in names) { Console.WriteLine(name); }अपनी कोड फ़ाइल सहेजें, और उसके बाद अपना कोड चलाने के लिए Visual Studio कोड का उपयोग करें।
अपना कोड चलाने के लिए टर्मिनल कमांड प्रॉम्प्ट से दर्ज
dotnet runकरें।ध्यान दें कि कोड त्रुटि के बिना चलता है और वांछित आउटपुट उत्पन्न करता है।
जब आप कोड चलाते हैं, तो आपको निम्न आउटपुट दिखाई देगा।
Alex Eddie Sammy Michaelचूंकि सरणी सीधे पुनरावृत्ति कथन के कार्यान्वयन का हिस्सा नहीं है, इसलिए आप सरणी के अंदर मान बदल सकते हैं।
संक्षिप्त
यहाँ इस इकाई से कुछ takeaways हैं:
-
forपुनरावृत्ति कथन आपको कोड के ब्लॉक के माध्यम से एक विशिष्ट संख्या में पुनरावृति करने की अनुमति देता है। -
forपुनरावृत्ति कथन आपको कोष्ठक के अंदर तीन स्थितियों को बदलकर पुनरावृत्ति के यांत्रिकी के हर पहलू को नियंत्रित करने की अनुमति देता है: प्रारंभकर्ता, स्थिति और इटरेटर। - कथन का
forउपयोग करना आम है जब आपको यह नियंत्रित करने की आवश्यकता होती है कि आप किसी सरणी में प्रत्येक आइटम के माध्यम से कैसे पुनरावृति करना चाहते हैं। - यदि आपके कोड ब्लॉक में कोड की केवल एक पंक्ति है, तो आप चाहें तो घुंघराले ब्रेसिज़ और सफेद स्थान को समाप्त कर सकते हैं।