while Loop with Example in C Language: चलिए, अब हम एक Program बनाते हैं, जिसमें User जितने Characters Input करता है, Program उन Input किए गए Characters की कुल संख्या Output में Display करता है।
Program #include <stdio.h> #include <conio.h> main() { long numberOfCharacters = 0 ; printf(" Enter characters how much you want. "); while ( getchar() != '\n') ++numberOfCharacters; printf("\n You have entered %ld Characters", numberOfCharacters); getch(); }
इस Program में हमने Long Type का एक Variable numberOfCharacters लिया है और उसमें मान 0 Initialize किया है। इस Variable को Long प्रकार का इसलिए लिया है, क्योंकि User इस Variable में जितने चाहे, उतने Characters Input कर सकता है। साथ ही इसमें 0 इसलिए Initialize किया है, क्योंकि हम इस Variable को एक Counter की तरह Use कर रहे हैं और Counting की शुरूआत से पहले Counter का मान हमेंशा 0 होता है।
Computer की Memory में किसी भी समय विभिन्न प्रकार के मान Store हो सकते हैं। जब भी हम किसी Program को Run करते हैं, वह Program Memory में कुछ Space लेता है और उसमें Store हो जाता है। उस Program में विभिन्न प्रकार की प्रक्रियाएं होती हैं और विभिन्न प्रकार की प्रक्रियाओं को पूरा करने के लिए Computer Memory में विभिन्न प्रकार के मानों को Hold करता रहता है।
जब Memory में Stored उस Program से हमारी जरूरत पूरी हो जाती है और हम Program को Terminate करते हैं, तब उस Program द्वारा की गई Processing के लिए Memory में ली गई Space में उस Program से सम्बंधित विभिन्न प्रकार के मान Program के Terminate होने के बाद भी Memory में Stored रहते हैं।
अब यदि हम कोई दूसरा Program Run करते हैं और वह Program भी Memory के उसी हिस्से में जाकर Load होता है, जहां पिछला Program Load था और हम हमारी जरूरत के अनुसार कोई Variable Declare करते हैं, तो उस पिछले Program के मान इस नए Program के Variable में भी Stored रहते हैं, जिसका हमारे Current Program के लिए कोई उपयोग नहीं होता है। इस प्रकार के मान को Computer की भाषा में Garbage Value कहा जाता है।
इसीलिए हमने हमारे इस Program में numberOfCharacters Variable में मान 0 Store किया है, ताकि यदि किसी पिछले Program के किसी Identifier का कोई मान इस Variable की Memory Location पर Stored हो, तो वह मान Clear हो जाए और इस Counter का मान 0 हो जाए।
जब Program Run होता है, तब एक Message Display होता है, जो User को Characters Input करने के लिए कहता है और Program निम्न Statement पर आकर Characters को प्राप्त करने लगता है:
while ( getchar() != ‘\n’)
getchar() Function User से कुछ Characters प्राप्त करता है और उन्हें अपने Buffer में Store करता है तथा पहले Character के ASCII Code को ‘\n’ Character Constant से Compare करता है।
यदि User ने Enter Key Press नहीं किया होता है, तो Comparison के बाद while Loop True होने की वजह से Computer numberOfCharacters Variable को Increment कर देता है और getchar() Function के Buffer से दूसरे Character को Read करता है।
यदि दूसरा Character भी ‘\n’ Character Constant नहीं होता है, तो while Loop फिर से True होता है और numberOfCharacters Variable को फिर से Increment कर देता है। ये प्रक्रिया तब तक चलती रहती है, जब तक कि getchar() Function को अपने Buffer में ‘\n’ Character Constant प्राप्त नहीं हो जाता है।
जब while Loop को ये Character Constant प्राप्त होता है, तब while Loop Terminate हो जाता है और एक printf() Statement numberOfCharacters के मान को Screen पर Display कर देता है, जो कि Input किए गए कुल Characters की संख्या को Represent करता है। इस तरह से User ने Keyboard से कितने Characters Input किए हैं, इसकी जानकारी Program द्वारा प्राप्त हो जाती है। यदि हम चाहें, तो इस Loop को निम्नानुसार Modify कर सकते हैं:
while ( getchar() != ‘0’)
यदि हम पिछले Program में while Loop को इस तरह से Modify कर दें, तो getchar() Function Keyboard से प्राप्त Characters में से तब तक Characters की Counting करता है, जब तक कि उसे getchar() Function के Buffer में ’0’ प्राप्त नहीं हो जाता। हम ‘0’ के स्थान पर किसी अन्य Character को भी Specify कर सकते हैं।
हम इस स्थान पर जिस Character को Specify करते हैं, Computer को getchar() Function के Buffer में जब वही Character प्राप्त होता है, getchar() Function Terminate हो जाता है। हम इस स्थान पर एक Special Constant मान EOF को भी Specify कर सकते है। ये एक ऐसा मान है, जो Computer को तब प्राप्त होता है, जब User Keyboard से Ctrl+Z Key Combination या Function Key F6 को Press करता है। यदि हम इस Constant को पिछले while Loop में Use करना चाहें, तो निम्नानुसार Use कर सकते हैं:
while ( getchar() != EOF )
यदि हम इस Constant मान को पिछले Program के while Loop में Replace करके Program को Run करें, तो ये Program तब तक Run होता रहता है, जब तक कि उसे getchar() के Buffer में EOF ( End Of File) का Signal प्राप्त नहीं हो जाता, जो कि Ctrl+Z Key Combination या Function Key F6 द्वारा प्राप्त होता है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook C Programming Language in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
C Programming Language in Hindi | Page: 477 + 265 | Format: PDF