Read in Hindi
Read in English

Moving forward with this C/C++ programming language tutorial today we will learn about for loop. Before for loop lets see about 1 more operator.

%: Using this we can know remainder when a number divides other. See the examples below.
  • int a = 15 % 2;Here value of a will be 1 because dividing 15 with 2 gives 1.
  • int b = 254 % 2;Here value of b will be 0 because dividing 254 with 2 gives 0.
  • int c = 37 % 10;Here value of c will be 7 because dividing 37 with 15 gives 7.

Now we will understand for loop with an example. In this example we will print square of numbers from 1 to 10.
#include <stdio.h>

int main() {
int i;
int sq;
for(i=1; i<=10; i = i+1) {
sq = i*i;
printf("square of %d is %d.\n", i, sq);
}

scanf("%s");
return 1;
}

2 variable i and sq are declared firstly. See carefully inside for(). I have ; at 2 places which divided it into 3 parts. Lets see how programs goes with this.
  • 1st part contains initialization statement. More than one statements can be separated using ; . Statements in this part executed only once. In this example initialization statement is: i = 1 Hence i will be 1.
  • 2nd part contains only one boolean statement which gives true or false. After executing 1st part if this middle part evaluates to true then all statements inside for { } will be executed once. In this example inside {} value of sq will become 1 because value of i is 1, Then "square of 1 is 1" will be printed on screen.
  • Then 3rd part will be executed and again 2nd part will be checked. If it is true then again all statements inside {} will be executed once again. Again 3rd part will be executed and 2nd part will be checked. If it is true, again statements inside {} will be executed. This process will go till 2nd part evaluates to false. In this example value of i will be 2 hence i <= 10 will be true and value of sq inside {} will be 4 because value of i is now 2. Similarly value of i will increase and statements inside {} will keep executing. When i will be 11 i <= 10 will be false and for loop will finish.

Run the program above and check the output. Change the value to anything and run to check the output. Program given below will check if number is even or odd for 1 to 10.
#include <stdio.h>

int main() {

int i;
int sq;
for(i=1; i<=10; i = i+1) {
switch(i%2) {
case 0: printf("%d is even.\n", i);
break;
case 1: printf("%d is odd.\n", i);
break;
}
}

scanf("%s");
return 1;
}

In program given above for loop will run as explained earlier and for each value of i from 1 to 10 statements inside {} block will be executed. here inside {} we have written switch case statement which we have learned in last topic. 1st time when we will come in switch case inside forloop i will be 1 hence i%2 will give 1 which matched with case 1 hence "1 is odd" will be printed. 2nd time when we come in switch case inside for loop, i will be 2 hence i%2 will give 0 which will match with case 0 hence "2 is even" will be printed. Similarly it will go on.

In next topic we will learn about array and taking input at runtime, which will explain why we write scanf(%s) at the end of each program.
If you like this tutorial, share it with your friends on facebook, orkut, twitter etc.
आज Hindi के इस C/C++ programming language tutorial को आगे बढ़ाते हुए हम for loop के बारे में और जानेंगे. for loop से पहले हम एक और operator के बारे में बात करते हैं.

%: किसी संख्या को दूसरी से भाग देने पर बचने वाला शेष हम इसके द्वारा जान सकते हैं. कुछ example नीचे दिए जा रहे हैं.
  • int a = 15 % 2;यहाँ a का मान 1 हो जायेगा क्योंकि 15 में 2 का भाग देने पर शेष 1 प्राप्त होगा.
  • int b = 254 % 2;यहाँ b का मान 0 हो जायेगा क्योंकि 254 में 2 का भाग देने पर शेष 0 प्राप्त होगा.
  • int c = 37 % 10;यहाँ c का मान 7 हो जायेगा क्योंकि 37 में 10 का भाग देने पर शेष 7 प्राप्त होगा.

अब हम for loop को एक example से समझते हैं. इस example में हम 1 से 10 तक की संख्याओ के square print करेंगे.
#include <stdio.h>

int main() {
  int i;
  int sq;
  for(i=1; i<=10; i = i+1) {
    sq = i*i;
    printf("square of %d is %d.\n", i, sq);
  }

  scanf("%s");
  return 1;
}

सबसे पहले 2 variable i, sq declare किये गए हैं. for() के अंदर ध्यान से देखें. इसमें 2 जगह ; का चिन्ह लगा होने चाहिए जो इसके अंदर लिखे हुए को 3 भागो में बांटता है. program किस तरह आगे बढ़ता है नीचे बताया गया है.
  • सबसे पहले भाग में initialization statement आते हैं. अगर एक से ज्यादा statement हैं तो ; लगाकर लिखते हैं. इस भाग में लिखे गए statement केवल एक बार execute होते हैं. इस example में ये statement i = 1 है अतः सबसे पहले i की value 1 हो जाएगी.
  • दूसरे भाग में सिर्फ एक boolean statement होती है जिसका output true या false होता है. पहला भाग execute होने के बाद यह भाग check होता है. अगर यह true है तो हम for के साथ { } के अंदर लिखे सारे statement एक बार execute करते हैं. इस example में {} के अंदर sq का मान 1 हो जायेगा क्योँकि अभी i का मान 1 है, उसके बाद screen पर print होगा square of 1 is 1.
  • इसके बाद तीसरा भाग execute होता है, और फिर से दूसरा भाग check करते हैं अगर वह true है तो तो हम फिर से {} के अंदर लिखे सारे statement execute हो जाते है. फिर से तीसरा भाग run होता है और फिर से दूसरा भाग check करते हैं और वह true है तो फिर से {} के अंदर लिखे statement execute कर देते हैं.. यह तब तक चलता रहता है जब दूसरा भाग false नहीं हो जाता. इस example में i का मान 2 हो जायेगा जिससे i <= 10 true हो जायेगा और अब {} के अंदर sq का मान 4 हो जायेगा क्योंकि i का मान 2 है. इसी तरह i का मान बढ़ता रहेगा और {} के अंदर लिखे statement execute होते रहेंगे. जब i का मान 11 हो जायेगा तब i <= 10 false आ जायेगा और for loop खत्म हो जायेगा.

ऊपर दिए program को run करके output देखे. अपने अनुसार value change करके run करें और output देखें. नीचे एक और program दिया जा रहा है. जो 1 से 10 तक हर संख्या के लिए print करेगा कि वह सम है या विषम.
#include <stdio.h>

int main() {
  int i;
  int sq;
  for(i=1; i<=10; i = i+1) {
    switch(i%2) {
      case 0: printf("%d is even.\n", i);
        break;
      case 1: printf("%d is odd.\n", i);
        break;
    }
  }

  scanf("%s");
  return 1;
}

ऊपर दिए गए program में for loop उसी तरह से चलेगा जैसे पहले बताया गया था और i के 1 से 10 तक हर एक मान के लिए for वाले {} block के अंदर लिखे statement execute होंगे. यहाँ हमने {} के अंदर switch case statement लिखा हुआ है जो हमने पिछले लेख में पढ़ा था. पहली बार जब for के अंदर switch case में आयेंगे तो i का मान 1 होगा अतः i%2 का मान 1 आएगा जोकि case 1 से match होगा इसलिए print होगा 1 is odd. जब दूसरी बार for के अंदर switch case में आयेंगे तो i का मान 2 होगा इसलिए i%2 का मान 0 आएगा जोकि case 0 से match होगा इसलिए print होगा 2 is even. इसी तरह आगे बढते जायेंगे.

अगले  लेख में हम array और runtime पर input लेना सीखेंगे. जिससे यह समझ में आ जायेगा कि हर program के अंत में scanf("%s") क्यों लिखते हैं.