for Loop
for Loop
यह
सर्वाधिक प्रयोग होने वाला Loop है |
इस
Loop
में “C” के for keyword का
प्रयोग होता है | इस
Loop
की विशेषता यह है , कि इसके जितने भी Statement होते हैं , उन्हें for Loop लिखने के बाद उसके नीचें
मझले कोष्टक के एक Block में लिखा जाता है और ये Statements
Block तभी Execute होता है , जब for
Condition सत्य होती है |
for
Loop का Syntax निम्नानुसार होता है |
for
( Initial Part; Conditional Part; Step Size Part )
{
Statements Block;
}
जब
for
Loop का Execution होता है , तो सर्व प्रथम Loop
का Variable Initialize होता है और फिर Condition
Check होती है | यदि
Condition
सत्य होती है , तो Program Control for Loop के
Statement Block में जाता है और वहां के Statements का Execution करता है |
जब
for
Loop Statement Block के सभी Statements का Execution
कर देता है तो Block से बाहर आने से पहले Loop
के Step Size Part का Execution करता है और बताई गई Size के अनुसार Variable का मान Increment या Decrement करता है |
फिर
वापस Condition
Check करता है यदि Condition सत्य होती है तो
वापस Statement Block में जाता है और सभी Statements का Execution करने के बाद वापस Step Size
Part का Execution करता है |
ये
क्रम तब तक चलता रहता है जब तक कि for Loop की
Condition सत्य रहती है |
Loop
का Initialization केवल एक बार ही होता है जब
पहली बार Program Control for Loop में प्रवेश करता है |
for
Loop का Execution हमेशा इसी क्रम में होता है
|
Example
इस
Loop
द्वारा एक प्रोग्राम बनाते हैं जिसमें 1 से 7
तक की गिनती को Output में निम्नानुसार Print
करवाना हैं |
1
2
3
4
5
6
7
इस
प्रोग्राम को हम पहले गणितीय रूप में लिखते हैं |
हम
int
प्रकार का एक Variable i लेते हैं |
इस
प्रकार में गिनती का प्रारम्भिक मान 1 है अतः i
का प्राम्भिक मान i = 1 कर सकते हैं |
यह
इस प्रोग्राम के Initial Part का Declaration
है |
Print
होने वाली गिनती का अधिकतम मान 7 है , इसलिए Condition
के रूप में हम ये कह सकते हैं कि Loop तब तक
चलना चाहिये जब तक कि i का मान 7 नहीं
हो जाता | इसलिए हम इसे
गणितीय रूप में i
<=7 लिख सकते हैं | यह
Expression
प्रोग्राम को बताता है कि Condition तब तक
सत्य रहेगी जब तक कि i का मान 7 से कम
या 7 के बराबर नहीं हो जाता |
यह
इस प्रोग्राम के Conditional Part का Declaration
है |
इस
प्रोग्राम में हर पहली संख्या हर दूसरी संख्या से बड़ी है |
इसलिए
Loop
के Step Size Part में हमें Increment
Operator का प्रयोग करना होगा और साथ ही हर संख्या एक के क्रम में
बढ़ रही है इसलिए हमें Variable के मान को हर Iteration
में एक के क्रम में बढाना होगा |
इसे
गणितीय रूप में i = i+1 के Step
Size Part का Declaration है |
इस
प्रकार हमें for Loop के तीनों भाग प्राप्त हो गए
हैं जो निम्नानुसार है |
i
= 1
i
<= 7
i++
or i = i+1
इस
तीनों को for Loop में रख देते हैं तो निम्न
प्रकार से for Loop का कोष्टक बन जाता है |
ध्यान
दें कि ये तीनों Expression अलग – अलग है |
इसलिए
इन्हें ; ( Semicolon) से अलग लिखा गया है |
for(
i=1; i<=7 ; i=i+1) or for ( i=1; i<=7; i++)
अब
for
Loop का Statement Block लिखना है |
i
का मान क्रम से एक – एक बढ़ रहा है |
इसलिए
Statement
Block में यदि i का मान Print कर दिया जाए , तो हमें हमारा Output प्राप्त हो
जाएगा | इसे निम्नानुसार
लिख सकते हैं –
{
printf(“%d”,i);
}
इस
प्रोग्राम में पहला अंक Print होने के बाद दूसरा
अंक अगली पंक्ति में Print होना चाहिये |
इसलिए
हमें नई लाइन के लिए एक New Line Statement और
लिखना होगा | साथ
ही ये Statement
भी for Statement Block के अंदर ही लिखना होगा
ताकि जैसे ही Program Control एक Iteration के बाद दूसरे Iteration के लिए जाए , उससे पहले एक New
Line Print हो | हम
printf()
Function के अंदर ही एक New Line Character Constant लिख सकते हैं | ये
दोनों Statement
नीचें लिखे गए हैं | हम
जिसे चाहें उसे Use कर सकते हैं |
printf(“%d\n”,i);
or printf(“\n”);
Program
/* Using of For Loop */
#include<stdio.h>
main()
{
int i;
for(i=1; i<=7; i++)
{
printf("%d\n",i);
}
getch();
}
इस
प्रोग्राम में जब प्रथम बार for Loop का Execution
होता है , तब i = 1 होता है | इसलिए
Condition
सत्य होती है , साथ ही i का मान Increment
हो कर 2 हो जाता है |
Program
Control , Block Statement को Execute कर देता
है और Output में संख्या 1 print हो
जाती है | Program Control वापस i का मान check करता है
और Condition वापस सत्य होती है |
i
का मान पुनः Incremented हो कर 3 हो जाता और Output में संख्या 2 Print हो जाती है |
पुनः
Condition
Check होती है और यह क्रम तब तक चलता है जब तक कि i का मान Increment हो कर 11 नहीं
हो जाता | जैसे ही i
का मान 11 होता है for Condition असत्य हो जाती है और Program Control for Statement Block को Execute नहीं करता बल्कि सीधे ही getch()
Function पर पहुंच कर Output को Print कर देता है |
Example
1
से 100 तक की सम संख्याओं को Print करने का प्रोग्राम बनाओं | हर
संख्या एक नई पंक्ति में print होनी चाहिये |
इस
प्रोग्राम में हमें एक Loop चलाना होगा और Loop
की Step Size का मान यदि दो – दो के क्रम में
बढाया जाए तो प्रोग्राम के Output में हमें केवल सम संख्याए
ही प्राप्त होगी | निचे
इस समस्या के समाधान के लिए प्रोग्राम बनाया गया है |
इस
प्रोग्राम में int प्रकार का एक Variable b लिया है | इस समस्या का प्रोग्राम निम्नानुसार है |
Program
/* Printing Odd Number In Output Using Loop */
#include<stdio.h>
main()
{
int b;
for(b=0; b<=100; b+=2)
{
printf("%d\n",b);
}
getch();
}
जब
प्रोग्राम को Execute किया जाता है , तो Program
हमेंशा की तरह Main() Function पर जाता है और Program
के Statement Block में प्रवेश करता है |
यहां
Computer
को int प्रकार का एक Variable b प्राप्त होता है |
यहां
Compiler
तीन काम करता है | पहला
, int
प्रकार के Variable को प्रारम्भिक मान 0
assign करता है | दूसरा
– Condition
Check करता है कि b का मान 100 से कम है या नहीं और जब Statement
Block के सभी Statements का Execution करके वापस Condition Check करने के लिए for
Loop के कोष्टक पर आता है , तो Block से बाहर
निकलने से पहले तीसरा काम करता है यानी b का मान उसे Initialized
प्रारम्भिक मान से दो अंक Increment करके बढा
देता है |
b
का मान 0 होने से Condition सत्य हो जाती है , इसलिए Program
Control , for Statement Block में प्रवेश करता है |
यहां
उसे Printf()
Function मिलता है और वह उसे Execute करके b
का मान Output में Print करता है | Statement Block को Execute करने के बाद पुनः Condition Check
होती है कि b का मान अब 100 से कम है या नहीं | Condition
वापस सत्य होती है क्योंकि अब b का प्रारम्भिक
मान 2 है जो कि 100 से कम है |
Condition
पुनः सत्य होने से पुनः Statement Block Execute होता है और b का दूसरा मान 2 Print हो जाता है |
पुनः
Program
Control b का मान Check
करने से पहले b का मान बढ़ कर 4 हो जाता है | पुनः
Condition
Check होती है कि b का मान 100 से कम या बराबर है या नहीं पुनः Condition सत्य होती
है | इस प्रकार यह
क्रम तब तक चलता रहता है जब तक कि b का मान Increment
हो कर 102 नहीं हो जाता |
जैसे
ही b
का मान बढ़ कर 102 होता है तो for की Condition असत्य हो जाती है और Program
Control , for Statement Block में प्रवेश नहीं करता बल्कि सीधे ही getch()
Function पर चला जाता है और Output Screen पर Show
हो जाता है | इस
प्रकार से हमें Output में केवल सम
संख्याएं ही मिलती है |
Example
20
ये 10 तक की सभी सम संख्याएं आरोही क्रम में Print
करो |
Program
#include<stdio.h>
main()
{
int a;
for(a=10; a>=5; a--)
{
printf("\n%d",a*2);
}
getch();
}
Example
एक
प्रोग्राम बनाओ जिसमें 100 से 200 तक की संख्याओं का योग Output में Print हो |
#include<stdio.h>
main()
{
int i, sum=0;
for(i=100; i<=200; i++)
sum = sum+i;
{
printf("\n sum = %d",sum);
}
getch();
}
Example
एक
प्रोग्राम बनाओं जिसमें n संख्याओं का Factorial
Output में Print हो |
Program
#include<stdio.h>
main()
{
int i , n , fact =1;
printf("Enter the n: ");
scanf("%d",&n);
for(i=n; i>0; i--)
fact = fact * i;
printf("fact =%d", fact);
getch();
}
Example
एक
प्रोग्राम बनाओ जिसमें n संख्याओं की Fibonacci
Series Output में Print
हो |
Program
#include<stdio.h>
main()
{
int a=0 , b=1 , sum , n , c;
printf("Enter the fibonacci Series: ");
scanf("%d",&n);
printf("%d\n",b);
for(c=1; c<=n; c++)
{
sum=a+b;
a=b;
b=sum;
printf("%3d",sum);
}
getch();
}
Example
एक
प्रोग्राम बनाओ जिसमें 100 से 200 के बीच उन संख्याओं का योग व संख्याएं Output में Print
हों , जिनमें 7 का भाग पूरा – पूरा जाता है |
Program
#include<stdio.h>
main()
{
int a, sum=0;
for(a=100; a<=200; a++)
{
if(a%7==0)
{
printf("%d",a);
sum=sum+a;
}
}
printf("\n sum=%5d\n",sum);
getch();
}
for
Loop की एक और विशेषता ये भी है कि हम एक ही for Loop कोष्टक में आवश्यकता के अनुसार कई Loop चला सकते है |
इसका
Syntax
निम्नानुसार होता है –
for ( Initial , Initial2, … , Initial Part n;
Conditional Part; Step1 , Step2, …, Step N)
{
Statement Block;
}
एक
उदाहरण द्वारा इसे समझते हैं | माना
हमें निम्न Format में गिनती Print करनी है |
इस
प्रोग्राम में चार पंक्तियों में अंक Print हुए
हैं इसलिए हमें चार अंकों के लिए चार Variable लेने होंगे |
माना
हमने चार Variable b,c,d,f लिए |
इस
प्रोग्राम में दो Variables को तो मान वैसे
ही दिया जाएगा जिस तरह Loop के पिछले प्रोग्राम में दिया है
, यानी निम्नानुसार
लिकिन
दो Variables
के साथ इसकी उलटी प्रक्रिया करनी होगी यानी Loop का मान प्रथम 10 व अंतिम मान 1 हो ना चाहिये तथा प्रोग्राम में Variables या Decrement
होना चाहिये | इससे
Variable
c व f का मान निम्नानुसार हो जाएंगे |
अब
इन चारों Variables का मान ऊपर वाले for Loop के Syntax के अनुसार लिख देते हैं , तो हमें निम्नानुसार Format प्राप्त होता है –
for
(b=1 , c=10 , d=1 , f=10; b<=10, c>=1, d<=10, f>=1; b++ , c-- , d++
,f--)
इस
Loop
में चार Loop एक साथ चलेंगे |
अब
हम यदि इन Loops से प्राप्त मानों को Output
में Print करें , तो हमें हमारा वांछित परिणाम
प्राप्त हो जाएगा | इसके
लिए हमें Statement Block में निम्न Statement
लिखना होगा |
{
printf(“\f%d\t%d\t%d\t%d\t\n”,b,c,d,f);
}
अब
हम पूरा प्रोग्राम लिखते हैं , जो निम्नानुसार होगा |
/*Using of For Loop With multiple Conditions */
#include<stdio.h>
main()
{
int b,c,d,f;
for(b=1, c=10 , d=1 ,f=10; b<=10, c>=1, d<=10, f>=1; b++, c--, d++,f--)
{
printf("%d\t%d\t%d\t%d\t\n",b,c,d,f);
}
getch();
}
इस
प्रोग्राम में पहली बार जब Loop का Execution
होता है तब b=1 , c=10 , d=1 व f=10 होता है | अगली
Iteration
में b=2 , c=9 , d=2 व f=9 हो जाता है | इसी
प्रकार ये क्रम चलता रहता है और क्रम से Output में
हमें मान प्राप्त होता जाता है |
एक
खास बात इस Loop की यह है कि इसमें Loop
Control के लिए जो Condition दी जाती है , वह Condition
सभी को देने की कोई जरुरत नहीं होती है , क्योंकि Program
Control केवल एक Condition को ही Check
करता है , शेष Condition को Check ही नहीं करता |
इसलिए
यदि हम चाहें तो केवल एक ही Condition से भी यही Output
प्राप्त कर सकते हैं | इस
प्रोग्राम में Loop f>=1 की Condition पर काम कर रहा है | इसलिए
हम चाहे तो शेष Condition को हटा सकते हैं |
ऐसा करने पर प्रोग्राम की for
Condition कुछ इस प्रकार से हो जाएगी |
for
(b=1, c=10 , d=1 , f=10; f>=1; b++, c--, d++, f--)
यदि
यह Syntax
हम for Loop प्रोग्राम में Use किए गए Loop के स्थान पर Use करते
हैं , तो भी Output , वही प्राप्त होता है जो पहले हुआ था |
सारांश
के रूप में हम कह सकते हैं कि जब एक for Loop में
कई Loop एक साथ Execute करने होते हैं
तो हर Loop का प्रारम्भिक मान व Step Size तो सभी को दिया जाता है लेकिन एक for Loop में Condition
सिर्फ एक ही हो सकती है |
यदि एक से अधिक Condition के अनुसार ही Loop Execute होता है क्योंकि for
Loop Right To Left चलता है |
No comments