Control Flow Statements: Conditional Statements, Loop Statements, MsgBox and InputBox

If/ElseIf/End If અને ranges સંભાળી શકતું Select Case, loops ના 4 ઘાટ જેમાં Do...Loop While ઓછામાં ઓછું એક વાર ચાલે જ છે, અને વાતચીત માટેની ઝડપી જોડી MsgBox તથા InputBox: ગલ્લાનો પહેલો ચાલતો સરવાળો.

11 min read · 10 cards · 2 checks

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


Theory

ગલ્લાની પહેલી વાતચીત

ShopKeeper માં buttons આવે એ પહેલાં મહેતા કાકાને એની ખાતરી જોઈએ છે કે logic કામ કરે છે: એક ઝડપી program જે એક પછી એક ભાવ પૂછે, ખાલી entry આવે ત્યાં અટકે, અને કુલ રકમ સાથે ટિપ્પણી પણ બતાવે: નાનું બિલ, સામાન્ય, કે મોટું.

એ એક જ કામને આ પાઠમાંનું બધું જ જોઈએ છે: એવો loop જે ઓછામાં ઓછો એક વાર ચાલવો જ જોઈએ, એવો નિર્ણય જે ranges સંભાળે (0, 500 સુધી, 500 થી ઉપર), અને વાત કરવા માટે 2 નાનકડાં dialog boxes. અને એ બધું VB.NET ના ખંડ જેવા ઘાટવાળા વ્યાકરણમાં.

Formula

નિર્ણયના syntax, પરીક્ષાના રૂપમાં

If નો ખંડ (Then અને છેડે આવતું End If ધ્યાનમાં રાખો):

If total > 500 Then

...

ElseIf total > 0 Then

...

Else

...

End If

Select Case (ક્યાંય break નહીં, અને એક case માંથી બીજામાં સરકી પડવાનું પણ નહીં):

Select Case total

Case 0 : ...

Case 1 To 500 : ...

Case Is > 500 : ...

Case Else : ...

End Select

Theory

Select Case, Java ના switch કરતાં આગળ

BCA403 નો નિયમ યાદ કરો: switch ફક્ત એક એક અચળ કિંમત સાથે જ મેળ કરતું હતું; ranges આવે એટલે તમારે પાછા if-else પર જવું પડતું. VB.NET ના Select Case ને એવી કોઈ વાડ નથી:

  • Case 1 To 500: આખો range
  • Case Is > 500: સરખામણી
  • Case 1, 3, 5: કિંમતોની યાદી

અને બે રાહત પણ: દરેક Case ત્યાં જ પૂરો થાય છે જ્યાં પછીનો શરૂ થાય છે (એક માંથી બીજામાં સરકી પડવાનું નહીં, એટલે ભૂલી જવાય એવો કોઈ break જ નથી), અને Case Else બાકીનું બધું ઝીલી લે છે. જ્યારે એક જ variable ને અનેક પ્રકારની કસોટીઓ સામે મૂકવો પડે, ત્યારે Select Case એ ભાવપત્રક જેવું જ વંચાય છે જેને એ અમલમાં મૂકે છે.

At a glance

Loops ના 4 ઘાટ

Loopક્યારે તપાસેઓછામાં ઓછું કેટલી વાર ચાલેઘાટ
For ... To ... [Step]દરેક આંટા પહેલાં0 વારFor i = 1 To 10 ... Next
While ... End Whileપહેલાં0 વારWhile qty > 0 ... End While
Do While/Until ... Loopપહેલાં0 વારDo While entry <> "" ... Loop
Do ... Loop While/Untilપછી1 વારDo ... Loop While again = "y"

Practical

ઝડપી સરવાળો, શરૂઆતથી અંત સુધી

Module QuickTotal
    Sub Main()
        Dim total As Double = 0
        Dim entry As String

        Do                              ' પછી તપાસ: ઓછામાં ઓછું એક વાર પૂછો
            entry = InputBox("Price (leave blank to finish):")
            If entry <> "" Then
                total += CDbl(entry)    ' InputBox STRING પાછું આપે છે
            End If
        Loop While entry <> ""

        Select Case total
            Case 0
                MsgBox("Empty bill")
            Case 1 To 500
                MsgBox("Total: " & total)
            Case Is > 500
                MsgBox("Big bill today: " & total)
        End Select
    End Sub
End Module

Quiz

For i As Integer = 10 To 1 : MsgBox(i) : Next કેટલાં boxes દેખાશે?

  1. 10, એટલે કે 10 થી 1 સુધી ઊતરતાં
  2. એકેય નહીં: મૂળભૂત Step +1 હોવાથી 10 તો 1 ને ક્યારનું વટાવી ચૂક્યું છે, એટલે અંદરનો ભાગ ક્યારેય ચાલતો જ નથી
  3. 1: એ 10 બતાવીને અટકી જાય છે
  4. અનંત: loop ક્યારેય 1 સુધી પહોંચતું જ નથી
Show the answer

એકેય નહીં: મૂળભૂત Step +1 હોવાથી 10 તો 1 ને ક્યારનું વટાવી ચૂક્યું છે, એટલે અંદરનો ભાગ ક્યારેય ચાલતો જ નથી

તમે જુદું ન કહો ત્યાં સુધી For loop +1 ના પગલે આગળ વધે છે, અને એની આગોતરી તપાસ પૂછે છે: counter હજી અંતિમ કિંમત તરફના રસ્તા પર છે ખરો? 10 થી શરૂ થઈને ઉપર તરફ જતાં 1 સુધી ક્યારેય પહોંચાય જ નહીં, એટલે તપાસ પહેલી જ વારમાં નિષ્ફળ જાય છે અને અંદરનો ભાગ શૂન્ય વાર ચાલે છે: ન ભૂલ, ન ચેતવણી, ફક્ત ચુપકીદી. ઊતરતા ક્રમમાં ગણવા માટે સ્પષ્ટ Step -1 જોઈએ: For i = 10 To 1 Step -1. વિકલ્પ A એ છે જે જોઈને લાગે કે code આમ કરતો હશે; વિકલ્પ C અને D એવાં વર્તન કલ્પે છે જેને આગોતરી તપાસ નકારી કાઢે છે. આવા ચૂપચાપ ખાલી રહી જતા loops પરીક્ષામાં ભૂલ શોધવાના પ્રિય ટુકડા છે.

Think first

ખાસ Do ... Loop While જ શા માટે?

ઝડપી સરવાળો પછી તપાસ કરતો loop વાપરે છે. BCA403 ના ચા પીરસતા યજમાનો યાદ કરો, અને પછી કારણ આપો: આ loop એ પોતાની શરત છેક નીચે જ શા માટે તપાસવી જોઈએ?

Show the answer

કારણ કે પહેલો પ્રશ્ન તો હંમેશાં પુછાવો જ જોઈએ: InputBox ને ઓછામાં ઓછું એક વાર બતાવ્યા વગર entry ખાલી છે કે નહીં એ તમે જાણી જ ન શકો. પહેલાં તપાસતો loop (Do While entry <> "") તો entry અસ્તિત્વમાં આવે એ પહેલાં જ એને તપાસવા બેસી જાત. પછી તપાસવું એટલે BCA403 ના do-while વાળો આત્મવિશ્વાસુ યજમાન: પહેલાં પીરસો, પછી પૂછો.

VB.NET માં એની જોડણી Do ... Loop While છે (અથવા Loop Until, એ જ વિચાર પણ શરત ઊલટાવીને: Loop Until entry = ""). એ જ ખ્યાલ, નવું વ્યાકરણ, અને સળંગ ત્રીજી ભાષા: menus અને પ્રશ્નોને હંમેશાં પહેલાં ચાલતા અને પછી તપાસતા loop ની જ જરૂર પડે છે.

Watch out

આ dialog ની જોડીની ઝીણી શરતો

InputBox હંમેશાં String પાછું આપે છે: CDbl કે CInt એને બદલે નહીં ત્યાં સુધી "350" એ લખાણ જ છે, અને Option Strict બંધ હોય ત્યારે નહીં બદલાયેલી entries પર ગણિત સરવાળો કરવાને બદલે જોડાણ કરી બેસે છે: "1" અને "50" ભેગાં થઈને "150" જેવાં ખોટાં બિલ બનાવે છે.

Cancel દબાવો તો ખાલી string પાછું આવે છે: તમારા loop એ "" ને બહાર નીકળવાના સંકેત તરીકે ગણવું જ જોઈએ (આપણો loop એમ કરે છે), નહીં તો Cancel દબાવતાં CDbl તૂટી પડે છે.

MsgBox સંદેશા માટે છે, ગોઠવણી માટે નહીં: ખરેખરા પડદા તો Unit 3 નાં controls માંથી આવે છે; MsgBox એ તો developer નો ઝડપી અવાજ છે.

Theory

Logic હવે buttons માટે તૈયાર છે

ગલ્લાને વિચારવા માટે જે જોઈએ એ બધું હવે લખાઈ ગયું છે: નક્કી કરવું (If, અને ranges વાળું Select Case જે Java પાસે ક્યારેય નહોતું), પુનરાવર્તન કરવું (loops ના 4 ઘાટ; વહેલા નીકળી જવા માટે Exit For અને Exit Do), અને વાત કરવી (બહાર MsgBox, અંદર InputBox). Unit 3 આ InputBox વાળી વાતચીતની જગ્યાએ ખરેખરું form મૂકે છે: ભાવ માટે TextBox, ઉમેરવા માટે Button, બિલ માટે DataGrid, અને આજના Select નો દરેક Case પડદા પરનું એક label બની જાય છે. મગજ તૈયાર થઈ ગયું; હવે પછી આપણે ચહેરો બનાવીશું.

Summary

Key takeaways

  • If ... Then ... ElseIf ... Else ... End If: ખંડ સ્વરૂપના નિર્ણયો, જે સ્પષ્ટપણે બંધ કરાય છે.
  • Select Case Java ના switch ને હરાવે છે: ranges (1 To 500), સરખામણી (Is > 500), યાદીઓ (1, 3, 5), Case Else, અને એક case માંથી બીજામાં સરકવાનું કે break બિલકુલ નહીં.
  • ચાર loops: For/Next (મૂળભૂત Step +1), While/End While, Do While/Until...Loop (પહેલાં તપાસ), Do...Loop While/Until (પછી તપાસ, ઓછામાં ઓછું એક વાર ચાલે).
  • Step -1 વગરનું For 10 To 1 ચૂપચાપ શૂન્ય વાર ચાલે છે.
  • MsgBox બતાવે છે; InputBox પૂછે છે અને STRING પાછું આપે છે (Cancel પર ખાલી): એને CDbl કે CInt વડે બદલો.
  • Exit For અને Exit Do loop માંથી વહેલા બહાર કાઢી દે છે.
  • યાદ રાખવાની કડી: Select Case ranges લે છે, Do...Loop પછી પૂછે છે, અને InputBox ફક્ત String જ બોલે છે.

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 Programming in Visual Basic .NET

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

Control Flow Statements: Conditional Statements, Loop Statements, MsgBox and InputBox · .NET Programming · Gri-Learn