Control structure: If...Else, switch..case; While, Do...While, For loop; break, continue

Control structures code માંનો રસ્તો નક્કી કરે છે: if/else અને switch એક ડાળી પસંદ કરે છે, while / do-while / for એક ટુકડો દોહરાવે છે, અને break loop ને વહેલો અટકાવે છે જ્યારે continue એના પછીના ફેરા પર કૂદે છે, અને switch નાં cases ને fall through ટાળવા break જોઈએ.

11 min read · 9 cards · 2 checks

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


Theory

પાનાએ નિર્ણય લેવા પડે છે

FestConnect એ નક્કી કરવું પડે: આ student પાત્ર છે (વર્ષ 2 કે ઉપર)? એણે દોહરાવવું પડે: 30 એ 30 events છાપવાં. એણે વિકલ્પોમાંથી પસંદ કરવું પડે: રોકડ, card, કે UPI. અને ક્યારેક એણે વહેલું અટકવું પડે: ભરેલું event મળ્યું, તપાસવાનું બંધ.

અત્યાર સુધી code સીધો નીચે, ઉપરથી નીચે ચાલતો હતો. Control structures એ વહેણને વાળે છે: એ code ને ફંટાવા (રસ્તો પસંદ કરવા) અને ફરી ફરવા (રસ્તો દોહરાવવા) દે છે. બે પ્રકારના ફંટાવા, ત્રણ પ્રકારના loop, અને એને અટકાવવાની બે રીત.

Theory

ફાંટા અને ગોળ ચકરાવા

Code ને વાહન ચલાવવા તરીકે વાંચો: if/else એ ફાંટો છે, તમે પાટિયા પ્રમાણે એક રસ્તો લો છો. switch એ અનેક નિકાસવાળો ગોળ ચકરાવો છે: તમે એ નિકાસેથી નીકળો છો જે તમારા મુકામ સાથે મળે છે. Loop એ એવો ચકરાવો છે જેમાં તમે ત્યાં સુધી ફર્યા કરો છો જ્યાં સુધી કોઈ શરત તમને નીકળવા ન દે. break એ કટોકટીનો નિકાસ છે જે ચકરાવો તરત છોડી દે છે; continue આ ફેરો પૂરો કર્યા વગર સીધો પછીના ફેરા પર કૂદે છે.

Theory

પહેલાં ફંટાવું, પછી ફરવું

ફંટાવું:

  • if (cond) { } else if (cond2) { } else { }: પહેલો એવો ટુકડો ચલાવો જેની શરત સાચી હોય.
  • switch (value) { case x: ...; break; default: ... }: એક મૂલ્યને અનેક સામે મેળવો. દરેક case ને break જોઈએ.

ફરવું:

  • while (cond) { }: પહેલાં તપાસો, પછી ચલાવો (શૂન્ય વાર પણ ચાલી શકે).
  • do { } while (cond): એક વાર ચલાવો, પછી તપાસો (ઓછામાં ઓછો એક ફેરો).
  • for (init; cond; update) { }: ગણતરીવાળો loop.

અટકાવવું: break loop છોડે છે; continue એના પછીના ફેરા પર કૂદે છે.

Practical

FestConnect ના નિર્ણય અને loops

let year = 3;
if (year >= 2) {
  console.log("Eligible");
} else {
  console.log("First years cannot register");
}

// switch: each case needs break
let pay = "upi";
switch (pay) {
  case "cash": console.log("Pay at desk"); break;
  case "upi":  console.log("Scan QR");     break;
  default:     console.log("Unknown");
}

// for loop over 3 events, skip the full one, stop at 'gala'
let events = ["robotics", "full", "dance", "gala"];
for (let i = 0; i < events.length; i++) {
  if (events[i] === "full") continue;   // skip this turn
  if (events[i] === "gala") break;      // stop entirely
  console.log(events[i]);               // robotics, dance
}

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

Think first

while સામે do-while

seatsLeft એ 0 છે. while (seatsLeft > 0) { book(); } ને do { book(); } while (seatsLeft > 0); સાથે સરખાવો. દરેકમાં book() કેટલી વાર ચાલે છે, અને FestConnect માટે એ કેમ મહત્ત્વનું છે?

Show the answer

while વાળી આવૃત્તિ book() ને શૂન્ય વાર ચલાવે છે: એ પહેલાં 0 > 0 તપાસે છે, જે ખોટું છે, એટલે એ ક્યારેય અંદર જ જતું નથી. do-while વાળી આવૃત્તિ તપાસતાં પહેલાં book() ને એક વાર ચલાવે છે, અસ્તિત્વમાં જ ન હોય એવી બેઠક નોંધીને, પછી અટકે છે. do-while હંમેશા ઓછામાં ઓછું એક વાર ચાલે છે, જે અહીં bug છે. નિયમ: do-while ત્યારે જ વાપરો જ્યારે શરીર ખરેખર ગમે તે થાય તોય એક વાર ચાલવું જ જોઈએ (જેમ કે દોહરાવવાનું પૂછતાં પહેલાં menu દેખાડવું).

Quiz

એક switch માં `case "cash": console.log("Desk"); case "upi": console.log("QR");` છે અને **કોઈ** break નથી. મૂલ્ય "cash" છે. શું છપાય છે?

  1. 'Desk' અને 'QR' બંને, કારણ કે break વગર અમલ આગળ ઢસડાય છે
  2. ફક્ત 'Desk'
  3. ફક્ત 'QR'
  4. કશું નહીં, કારણ કે case માં દાખલ થવા break જરૂરી છે
Show the answer

'Desk' અને 'QR' બંને, કારણ કે break વગર અમલ આગળ ઢસડાય છે

break વગર, એક વાર case મળે પછી અમલ 'ઢસડાઈને' પછીના cases પણ ચલાવતો રહે છે, એટલે 'cash' એ 'Desk' અને 'QR' બંને છાપે છે (A). એ પહેલા પર અટકતું નથી (B), અને એ મળતા case માં બરાબર દાખલ થાય જ છે (C, D ખોટા છે). આ ઢસડાવું એ switch નો જાણીતો bug છે: દરેક case ના છેડે break મૂકો, સિવાય કે તમે જાણી જોઈને એમની વચ્ચે code વહેંચવા માંગતા હો.

Watch out

વહેણના ફાંદા

1. switch માં ખૂટતું break: અમલ પછીના cases માં ઢસડાય છે. દરેક case ને break થી પૂરું કરો.

2. અંતહીન loop: એવો while/for જેની શરત ક્યારેય ખોટી થતી નથી (તમે ગણતરી બદલવાનું ભૂલી ગયા) એ પાનું થીજવી દે છે. હંમેશા નિકાસ તરફ ખસો.

3. do-while ન ચાલવું જોઈએ ત્યારે પણ એક વાર ચાલે છે: while થી પહેલાં તપાસો, સિવાય કે એક ખાતરીબદ્ધ ફેરો ઇરાદાપૂર્વક હોય.

4. શરતમાં =: if (year = 2) સોંપે છે, અને હંમેશા સાચું ગણાય છે. === વાપરો.

Theory

Loops validation ચલાવે છે

Unit 5 માં, form નું validation દરેક જરૂરી ખાના પર ફરીને એ ભરાયું છે કે નહીં તપાસે છે, અને એ પણ બરાબર આ જ for વત્તા if વાપરીને, અને પહેલું ખાલી ખાનું જણાવવા break થી બહાર નીકળે છે. અહીંનું પાત્રતાનું if એ જ validation ના તર્કનું બીજ છે. ફંટાવું અને ફરવું એ તમે બાંધશો એ દરેક interactive લક્ષણની કરોડરજ્જુ છે.

Summary

Key takeaways

  • if / else if / else (રસ્તો પસંદ કરો) અને switch/case (એક મૂલ્યને અનેક સામે મેળવો) થી ફંટાવો.
  • while (પહેલાં તપાસો), do-while (પહેલાં એક વાર ચલાવો), for (ગણતરીવાળો loop) થી ફરો.
  • break loop ને તરત છોડે છે; continue loop ના પછીના ફેરા પર કૂદે છે.
  • દરેક switch ના case ને break જોઈએ, નહીં તો અમલ પછીના case માં ઢસડાય છે.
  • અંતહીન loops ટાળો (શરતને હંમેશા ખોટા તરફ ખસેડો) અને શરતમાં ક્યારેય = ન વાપરો.
  • Memory hook: ફાંટા (if/switch) અને ગોળ ચકરાવા (loops), અને કટોકટીના નિકાસ તરીકે break.

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 Overview of JavaScript

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

Control structure: If...Else, switch..case; While, Do...While, For loop; break, continue · Web Designing-1 (option A) · Gri-Learn