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

If/ElseIf/End If और एक Select Case जो ranges handle करता है, 4 loop shapes जिसमें Do...Loop While कम-से-कम-एक-बार वाला है, और MsgBox/InputBox एक quick dialogue pair की तरह: till का पहला working total।

11 min read · 10 cards · 2 checks

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


Theory

Till की पहली Conversation

ShopKeeper के buttons बनने से पहले, Mehta Uncle चाहते हैं logic काम करने का proof: एक quick program जो prices एक-एक करके पूछे, एक blank entry पर रुके, और total एक comment के साथ दिखाए: छोटा bill, normal, या बड़ा।

उस एक errand को इस lesson की हर चीज़ चाहिए: एक loop जो कम-से-कम एक बार ज़रूर चले, ranges वाला एक decision (0, 500 तक, 500 से ऊपर), और बात करने के लिए 2 छोटे dialog boxes। यह सब VB.NET की block-shaped grammar में।

Formula

Decision Syntaxes, Exam Form में

If block (Then नोटिस कीजिए, और closing End If):

If total > 500 Then

...

ElseIf total > 0 Then

...

Else

...

End If

Select Case (कहीं भी break नहीं, कोई fall-through नहीं):

Select Case total

Case 0 : ...

Case 1 To 500 : ...

Case Is > 500 : ...

Case Else : ...

End Select

Theory

Select Case, Java के switch से आगे

BCA403 का rule याद है: switch सिर्फ़ single constant values match करता था; ranges के लिए आपको if-else पर वापस जाना पड़ता था। VB.NET के Select Case में ऐसी कोई फ़ेंस नहीं है:

  • Case 1 To 500: एक पूरी range
  • Case Is > 500: एक comparison
  • Case 1, 3, 5: values की एक list

और 2 relief: हर Case वहीं खत्म होता है जहाँ अगला शुरू होता है (कोई fall-through नहीं, तो कोई break भूलने का सवाल ही नहीं), और Case Else बाकी सब catch करता है। जब एक variable कई तरह के tests face करता है, Select Case उसी price list की तरह पढ़ता है जिसे यह implement करता है।

At a glance

चार Loop Shapes

LoopCheck कबकम-से-कम कितनी बार चलता हैShape
For ... To ... [Step]हर pass से पहले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बाद में (AFTER)1 बारDo ... Loop While again = "y"

Practical

Quick Total, Start से Finish तक

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

        Do                              ' post-test: ask at least once
            entry = InputBox("Price (leave blank to finish):")
            If entry <> "" Then
                total += CDbl(entry)    ' InputBox returns a 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 appear होते हैं?

  1. 10, 10 से 1 तक counting down करते हुए
  2. कोई नहीं: default Step +1 होने से, 10 पहले ही 1 से आगे है, तो body कभी नहीं चलता
  3. 1: यह 10 दिखाता है और रुक जाता है
  4. Infinite: loop कभी 1 तक नहीं पहुँचता
Show the answer

कोई नहीं: default Step +1 होने से, 10 पहले ही 1 से आगे है, तो body कभी नहीं चलता

एक For loop बताया न जाए तो +1 से step करता है, और इसका pre-test पूछता है: क्या counter अभी भी end value की तरफ़ जाने के रास्ते पर है? 10 से शुरू होकर UP जाते हुए, यह कभी 1 तक नहीं पहुँच सकता, तो test तुरंत fail हो जाता है और body ज़ीरो बार चलता है: कोई error नहीं, कोई warning नहीं, बस silence। Counting down के लिए explicit Step -1 चाहिए: For i = 10 To 1 Step -1। Option A वह है जो code DEKHNE में करता लगता है; options C और D ऐसे behaviours invent करते हैं जिन्हें pre-test rule out करता है। इस तरह के silent empty loops spot-the-bug snippets के favourite होते हैं।

Think first

Do ... Loop While ही क्यों, Specifically?

Quick total post-test loop इस्तेमाल करता है। BCA403 के chai-serving hosts याद कीजिए, फिर justify कीजिए: यह loop अपनी condition को नीचे (bottom) पर ही क्यों check करना चाहिए?

Show the answer

क्योंकि पहला question हमेशा पूछा ही जाना चाहिए: आप बिना InputBox कम-से-कम एक बार दिखाए यह नहीं जान सकते कि entry blank है या नहीं। एक pre-test loop (Do While entry <> "") entry के exist करने से पहले ही इसे test कर देता। Post-test = BCA403 का वह confident host जो do-while से था: पहले act कीजिए, बाद में check कीजिए। VB.NET की spelling है Do ... Loop While (या Loop Until, वही idea condition inverted के साथ: Loop Until entry = "")। वही concept, नई grammar, लगातार तीसरी language: menus और prompts हमेशा body-first loop चाहते हैं।

Watch out

Dialog Pair की Fine Print

InputBox हमेशा एक String return करता है: "350" तब तक text है जब तक CDbl/CInt इसे convert न करे, और unconverted entries पर arithmetic जब Option Strict off हो तो add करने के बजाय concatenate करता है: "1" & typing errors "150" वाले bills बना देते हैं।

Cancel एक empty string return करता है: आपके loop को "" को exit signal की तरह treat करना ज़रूरी है (हमारा करता है), वरना Cancel, CDbl को crash कर देता है।

MsgBox messages के लिए है, layout के लिए नहीं: असली screens Unit 3 के controls से आते हैं; MsgBox developer की quick voice है।

Theory

Logic Buttons के लिए Ready है

जो कुछ भी till को SOCHNE के लिए चाहिए वह अब लिखा जा चुका है: decide कीजिए (If, Select Case जिसमें ranges हैं जो Java के पास कभी नहीं थीं), repeat कीजिए (4 loop shapes; early exits के लिए Exit For / Exit Do), और बात कीजिए (MsgBox बाहर, InputBox अंदर)। Unit 3 InputBox वाली conversation को एक असली form से replace करती है: price के लिए TextBox, add के लिए Button, bill के लिए DataGrid, और आज के Select का हर Case screen पर एक label बन जाता है। Brain ready है; अगला हम face बनाते हैं।

Summary

Key takeaways

  • If ... Then ... ElseIf ... Else ... End If: block decisions, explicitly बंद होते हुए।
  • Select Case Java के switch से आगे जाता है: ranges (1 To 500), comparisons (Is > 500), lists (1, 3, 5), Case Else, और कोई fall-through या break नहीं।
  • चार loops: For/Next (default Step +1), While/End While, Do While/Until...Loop (pre-test), Do...Loop While/Until (post-test, कम-से-कम एक बार चलता है)।
  • For 10 To 1 बिना Step -1 के silently zero बार चलता है।
  • MsgBox दिखाता है; InputBox पूछता है और एक STRING return करता है (Cancel पर empty): CDbl/CInt से convert कीजिए।
  • Exit For और Exit Do जल्दी loop से बाहर निकलते हैं।
  • Memory hook: 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