Nested while, do-while and for loops

Nested loop એ એક loop ની અંદર એક loop છે: outer ના દરેક એક પગલા પર inner એના બધા rounds પૂરા કરે છે, બરાબર ઘડિયાળના minute કાંટાની જેમ, અને એ tables, grids અને exam ના પ્રિય star patterns ને ચલાવે છે.

11 min read · 10 cards · 3 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

Rows અને columns ને બે loops જોઈએ

Marks program હવે 60 students માંથી loop કરે છે. નવી જરૂરિયાત: દરેક student ના 4 subjects છે.

તો પુનરાવર્તન પોતે પુનરાવર્તિત થાય છે: દરેક student માટે, દરેક subject માટે, એક mark વાંચો. એક loop ની અંદર એક loop.

Nested loops એ સવાલ ને પણ ચલાવે છે જે દરેક VNSGU paper ને પ્રિય લાગે છે: આ star pattern print કરો. આ page ના અંત સુધી, patterns એક formula બની જાય છે, કોયડો નહીં.

Theory

ઘડિયાળ

એક ઘડિયાળ જુઓ: hour કાંટા ને એક પગલું ચાલવા માટે, minute કાંટો 60 પૂરા પગલાં પૂરા કરે છે. Outer loop = hour કાંટો, inner loop = minute કાંટો. Inner loop એની આખી જિંદગી, શરૂથી અંત સુધી, outer ના દરેક એક tick ની અંદર જીવે છે. એક hour-tick, 60 minute-ticks; બે hour-ticks, 120. ગણતરીઓ ગુણાય છે.

Theory

Nested loops, ઔપચારિક રીતે

કોઈ પણ loop બીજા કોઈની અંદર બેસી શકે છે (for માં for, for માં while...). નિયમ:

દરેક outer iteration માટે, inner loop પૂરો ચાલે છે.

for (i = 1; i <= 3; i++) /* students */

for (j = 1; j <= 4; j++) /* subjects */

...read mark...

Body 3 × 4 = 12 વાર ચાલે છે: i=1 સાથે j=1,2,3,4; પછી i=2 સાથે j=1,2,3,4; પછી i=3 એ જ રીતે. સ્વચ્છતાના બે નિયમ: અલગ counters (i અને j), અને જાણો કયો loop કયું કામ રાખે છે: outer = rows, inner = columns.

Practical

Exam નો ક્લાસિક: એક star triangle

#include <stdio.h>

int main() {
    int i, j;
    for (i = 1; i <= 4; i++) {      /* rows    */
        for (j = 1; j <= i; j++) {  /* columns */
            printf("*");
        }
        printf("\n");               /* end the row */
    }
    return 0;
}

This example runs in Gri-Learn on the web, where you can edit it and see the output.

Think first

Pattern નું અનુમાન કરો

Code trace કરો: 1 થી 4 સુધી દરેક i માટે, inner loop stars print કરે છે જ્યાં સુધી j <= i, પછી એક newline. પહેલા કાગળ પર બરાબર output બનાવો.

Show the answer

*

**

***

****

Row i ને બરાબર i stars મળે છે કારણ કે inner condition j <= i છે: row 1 એક star આપે છે, row 4 ચાર. દરેક star-pattern સવાલ એ જ એક હાડપિંજર છે એક અલગ inner condition સાથે, j ની સીમા decode કરો અને તમે pattern decode કરી લીધો.

Quiz

nested loops for(i=1; i<=3; i++) { for(j=1; j<=4; j++) { body } } માં, body કેટલી વાર execute થાય છે?

  1. 12 વાર: 3 outer × 4 inner
  2. 7 વાર: 3 + 4
  3. 4 વાર: inner loop જીતે છે
  4. 3 વાર: outer loop જીતે છે
Show the answer

12 વાર: 3 outer × 4 inner

Inner loop 3 outer rounds માંથી દરેક માટે એના પૂરા 4 rounds ચલાવે છે: 3 × 4 = 12. ઉમેરવું (option B) સામાન્ય ભૂલ છે, ઘડિયાળ યાદ રાખો: બે કલાક 120 minute-ticks છે, 62 નહીં. ગણતરીઓનો ગુણાકાર એ સૌથી વધુ test થતું nested-loop તથ્ય છે.

Quiz

star-triangle code માં, printf("\n") inner loop ના પછી પણ outer loop ની અંદર કેમ બેસે છે?

  1. દરેક row ના stars પહેલા પૂરા થાય છે, પછી row એક newline થી બંધ થાય છે
  2. એ એક style choice છે; ગમે ત્યાં એકસરખું ચાલે છે
  3. newline ને દરેક star પર એક વાર ચાલવું જોઈએ
  4. C દરેક loop ના અંતે \n ફરજિયાત કરે છે
Show the answer

દરેક row ના stars પહેલા પૂરા થાય છે, પછી row એક newline થી બંધ થાય છે

Newline નું કામ "આ ROW પૂરી કરો" છે, એટલે એ outer (row) loop નું છે, દરેક row પર એક વાર ચાલતું. એને inner loop ની અંદર લઈ જાઓ અને દરેક star પોતાની અલગ line પર આવે છે; બંનેની બહાર લઈ જાઓ અને બધા stars એક line પર ભીડ કરે છે. \n ની જગ્યા એ જ બરાબર ત્યાં છે જ્યાં pattern જવાબ ખોટા થાય છે.

Watch out

Marks ક્યાં કપાય છે

બંને loops માટે i ફરી વાપરવું: inner loop outer counter બગાડી નાખે છે અને program વિચિત્ર રીતે કે હંમેશા માટે loop કરે છે; હંમેશા i અને j. કામ ઉલટાવવું: outer એ rows છે, inner columns; એમને ઉલટાવો અને pattern transpose થઈને નીકળે છે. \n ની જગ્યા (quiz જુઓ). Trace સવાલોમાં, (i, j) જોડી ક્રમમાં લખો: (1,1) (1,2)... nesting ને આનાથી ઝડપી કંઈ ઉકેલતું નથી.

Theory

Nesting નું ફળ આગળ ક્યાં મળે છે

Students × subjects એ એક grid છે, અને Unit 3 ના two-dimensional arrays બરાબર આવા જ grids store કરે છે, બરાબર આ જ બે counters થી ચાલતા (rows માટે i, columns માટે j). BCA102 માં કરેલા matrix operations પણ C માં nested loops બની જાય છે. અત્યારે ઘડિયાળમાં નિપુણતા મેળવો; grid વાળા lessons પહેલેથી-શીખેલા લાગશે. પણ પહેલા: loop ના કટોકટીના exits, break અને continue.

Summary

Key takeaways

  • Nested loop: દરેક outer iteration માટે inner loop પૂરો ચાલે છે.
  • કુલ body runs = outer count × inner count (3×4 = 12), ગુણો, ક્યારેય ઉમેરો નહીં.
  • Outer loop rows રાખે છે; inner loop columns.
  • અલગ counters વાપરો (i, j); એકને ફરી વાપરવું ક્લાસિક bug છે.
  • Star patterns: row i ત્યારે print કરે છે જ્યારે j <= i; \n દરેક row ને inner loop પછી બંધ કરે છે.
  • યાદ રાખવાની યુક્તિ: ઘડિયાળ, એક hour-tick, 60 minute-ticks.

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from Decision Making and Iterative statements

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Nested while, do-while and for loops · Computer Programming and Programming Methodology (CPPM) · Gri-Learn