
Ś@Xe[gg̐䕶ɂ

@̒SƂȂXe[gg̐䕶ɂĉsB
{IȓeɂẮAMicrosoftQuickBASIC Ver.4.5ƓłB


    Call

        @
         Sy1:   Call name(argumentlist)
         Sy2:   name argumentlist

                name            :DLL library or VisUal Basic Sub
                argumentlist    :nameɓnp[^
        
        gp
         Ex1:   Call Difference((A),B)
                Difference (A),B

         Ex2:   Dim IntArray(20) As Integer
                Call ShellSort(IntArray())

        
                DLLĂяoꍇ́AODeclareɂ`sKv

    Do...Loop

        @
         Sy1:   Do {While|Until} condition
                   statementblok
                   [Exit Do]
                   statementBlok
                Loop
         Sy2:   Do
                   statementblok
                   [Exit Do]
                   statementblok
                Loop {While|Until} condition

                While           :conditionTrue̊
                Until           :conditionTrueɂȂ܂
                condition       : True(-1) or False(0)
                statementblok   :e폈
                Exit Do         :If̏ɂDo𔲂

        gp  
         Ex1:   a=0
                Do While a < 10
                    Pic1.Print a;
                    a=a+1
                Loop
                Pic1.Print "end=";a
                a=0
                Do Until a > 10
                    Pic2.Print a;
                    a=a+1
                Loop
                Pic2.Print "end=";a

        s  Pic1 0 1 2 3 4 5 6 7 8 9 end=10 \
                  Pic2 0 1 2 3 4 5 6 7 8 9 10 end=11 \
         Ex2:   a=0
                Do
                    Pic1.Print a;
                    a=a+1
                Loop While a < 10
                Pic1.Print "end=";a
                a=0
                Do
                    Pic2.Print a;
                    a=a+1
                Loop Until a > 10
                Pic2.Print "end=";a

        s  Pic1 0 1 2 3 4 5 6 7 8 9 end=10 \
                  Pic2 0 1 2 3 4 5 6 7 8 9 10 end=11 \

    GoSub...Return

        @
         Sy1:   GoSub linelabel
                statementblok
                Exit Sub
                linelabel:
                   statementblok
                return

                linelabel       :s̐擪ɏꂽsx
                statementblok   :e폈
                Exit Sub        :Tu[`𔲂

        gp
         Ex1:   Sub ....
                   GoSub addsub
                   Exit Sub
                addsub:
                   a=Val(text1.text)
                   b=Val(text2.text)
                   Pic1.Print a;"+";b;"=";a+b
                Return
                End Sub

        sʁ@text1 10 text2 1.23 ͌s
                  Pic1 10 + 1.23 = 11.23 ƕ\
        
                Ăяox́AProcł邱
                sԍďóAgpȂ


    GoTo

        @
         Sy1:   GoTo linelabel

                linelabel       :s̐擪ɏꂽsx

        gp
         Ex1:   Sub ....
                   GoSub mulsub
                   GoTo  AllExit
                mulsub:
                   a=Val(text1.text)
                   b=Val(text2.text)
                   Pic1.Print a;"*";b;"=";a*b
                   Return
                AllExit:
                End Sub

        sʁ@text1 10 text2 1.23 ͌s
                  Pic1 10 * 1.23 = 12.3 ƕ\
        
                Ăяox́AProcł邱
                sԍďóAgpȂǂł傤

    If...Then...Else

        @
         Sy1:   If condition Then statementblok [Else statementblok]
         Sy2:   If condition Then
                    [statementblok]
                [ElseIf condition Then]
                    [statementblok]
                [Else]
                    [statementblok]
                End If

                condition       : True(-1) or False(0)
                statementblok   :e폈

        gp
         Ex1:   If Val(text1.text) > 10 Then m$=">":s=1 Else m$="<=":s=2
                Pic1.Print "10";m$;"IN s=";s

        sʁ@text1 10 ͂ Pic1 10<=IN s=2
                  text1 20 ͂ Pic1 10>IN s=1\

         Ex2:   v=Val(text1.text)
                If v < 10 Then
                    s=1
                    a1=1
                ElseIf v < 100 Then
                    s=2:a2=2
                ElseIf v < 1000 Then
                    s=3:a3=3
                Else
                    s=4:a4=4
                End If
                Pic1.Print "s=";s
                If a1=1 or a2=2 or a3=3 Then Beep
                Pic1.Print "[";a1;a2;a3;a4;"]"

        s  text1.text 1 ͂Pic1 s=1 [ 1 0 0 0 ]Beep
                            10   ̏ꍇ s=2 [ 0 2 0 0 ]Beep
                            100  ̏ꍇ s=3 [ 0 0 3 0 ]Beep
                            1000 ̏ꍇ s=4 [ 0 0 0 4 ]BeepȂ


        
                ʓIɋN₷\~X̗
                ɎErxׂ͂ČłΏOkxɎ

         Er1: Then ɑL If ͌psƔf
                If Val(text1.text) > 10 Then m$=">":s=1
                Else m$="<=":s=2
                Pic1.Print "10";m$;"IN s=";s

         Er2: Et1 ƓR End If ̈Ӗ͂Ȃ
                If Val(text1.text) > 10 Then m$=">":s=1
                Else m$="<=":s=2
                End If
                Pic1.Print "10";m$;"IN s=";s

         Ok1:   If Val(text1.text) > 10 Then
                   m$=">":s=1
                Else m$="<=":s=2
                End If
                Pic1.Print "10";m$;"IN s=";s


    On Error

        @
         Sy1:   On Error {GoTo linelabel | Resume Next | Goto 0}

                Goto Linelabel  :G[W[`̓o^
                Resume Next     :G[𖳎Ďɐi
                Goto 0          :G[VXeɈˑ

        gp
         Ex1:   Sub ...
                   On Error GoTo ErrHand1
                   Pic1.Print "A";:Error 1000:Pic1.Print "B";
                   On Error Resume Next
                   Pic1.Print "C";:Error 1000:Pic1.Print "D";
                   On Error GoTO 0
                   Pic1.Print "E";:Error 1000:Pic1.Print "F";
                   Exit Sub
                ErrHand1:
                   Selectt Case Err
                        Case 1000: msg$="On Error GoTo ErrHand1"
                        Case Else: msg$="Default"
                   End Select
                   MsgBox msg$
                   Resume Next
                End Sub

        sʁ@ŏPic1 A \꒼Ɂ@On Error GoTO ErrHand1
                @bZ[W\B BCDE \
                @User-Defined Error bZ[W\sf
        
                Ăяox́AProcł邱ƍsԍďóAgpȂ
                [UŗLG[R[h́A1000Ԉȏ̎gp]܂



    On GoSub...,On GoTo...

        @
         Sy1:   On expression GoSub linelabel_list
         Sy2:   On expression GoTO linelabel_list

                expression      :pValuef[^0 to 255
                linelabel_list  :s̐擪ɏꂽsxXg

        gp
         Ex1:   Sub ....
                   in=Val(text1.text)
                   msg$="No"
                   if in<=255 And in>0 Then
                      On in Gosub Chose1,Chose2,Chose3
                   End If
                   MsgBox msg$
                   Exit SUb
                Chose1:
                   msg$="One"
                Return
                Chose2:
                   msg$="Two"
                Return
                Chose3:
                   msg$="Tree"
                Return
                End Sub

        s  text1 1 3͂ƑΉP\

         Ex2:   Sub ....
                   in=Val(text1.text)+1
                   Total=0
                   if in<=255 And in>0 Then
                      On in GoTo ExSub,Chose1,Chose2,Chose3
                   End If
                   Exit Sub
                Chose3:
                   Total=Total+1
                Chose2:
                   Total=Total+1
                Chose1:
                   Total=Total+1
                   Pic1.Print "Total=";Total
                ExSub:
                End SUb
                
        s text1 1 3͂ƓlTotal\

        
                expression̒l}CiX܂́A255𒴂ꍇG[
                ܂A0܂ linelabel_lisť𒴂鐔l̏ꍇ͕
                ̍sɐ䂪n

    Select Case...

        @
         Sy1:   Select Case test_expression
                    Case expression
                        statementblok
                    [Case .....]
                        [statementblok]
                    [Case Else]
                        [statementblok]
                End Select

                tesr_expression :rΏۃf[^
                expression      :erf[^
                statementblok   :e폈

        gp
         Ex1:   in1=Val(text1.text)
                in2=Val(text2.text)
                Select Case in1
                    Case 1 To 4, 7 To 9, 11, 13, Is > in2
                        Pic1.Print "1,2,3,4,7,8,9,11,13 & in1>in2"
                End Select
                Select Case text1.text
                    Case "Everything","nuts" To "soup", text2.text
                        Pic1.Print "Everything,nuts to soup,in1$=in2$"
                End Select

        sʁ@vނ`鎖ł
                  vΈv\

         Ex2:   If Val(text1.text) = 0 Then
                   chkstr$=text1.text+" "
                   Select Case Asc(chkstr$)
                      Case 65 To 90
                        Msg$="A to Z"
                      Case 97 To 122
                        Msg$="a to z"
                      Case Else
                        Msg$="???"
                   End Select
                Else
                   Select Case val(text1.text)
                      Case 1,3,5,7,9
                        Msg$="Odd"
                      Case 0,2,4,6,8
                        Msg$="Even"
                      Case Else
                        Msg$="Over(in 0 to 9)"
                   End Select
                End If
                MsgBox Msg$

        sʁ@͕ɂUʂ̃bZ[W\

        
                rΏۂ̏ꍇ́AANSIR[hɔrs
                񂪕sꍇ0Ĕr
                Ex2chkstr$=text1.text+" "͖͎Asc(chkstr$)
                G[̂h߂̏

    While...Wend

        @

         Sy1:   While condition
                   statementblok
                Wend

                condition       : True(-1) or False(0)
                statementblok   :e폈

        gp  
         Ex1:   Const FALSE=0,TRUE=-1
                cnt=0
                cn2=0
                Sw=TRUE
                While Sw
                   cnt=cnt+1
                   if cnt=10 Then Sw=FALSE
                   cn2=cn2+1
                Wend
                Pic1.Print "cnt=";cnt,"cn2=";cn2

                s  Pic1 cnt=10   cn2=10 \

        
        @@    Exitɂ钆f͂łȂKvDo...Loopgp

    For...Next

        @
         Sy1:   For counter = start To end [Step increment]
                   statementblok
                   [Exit For]
                   statementblok
                Next [counter]

                counter         :񐔃JEgϐ
                start           :JEgJnl
                end             :JEgIl
                increment       :JEg
                statementblok   :e폈

        gp
         Ex1:   NL$=Chr$(13)+chr$(10)
                For Rep% = 5 To 1 Step -1
                   For Idx% = Asc("A") To Asc("Z")
                      Msg$=Msg$+chr$(Idx%)
                      If Idx%=(Asc("A")+Rep%*5) Then Exit For
                   Next Idx%
                   Msg$=Msg$+NL$
                Next Rep%
                MsgBox Msg$

        s  bZ[W{bNXɈȉ̓e\
                  ABCDEFGHIJKLMNOPQRSTUVWXYZ
                  ABCDEFGHIJKLMNOPQRSTU
                  ABCDEFGHIJKLNMOP
                  ABCDEFGHIJK
                  ABCDEF
        
        
                  Exit For ͓For 珇ɑΉ
                  NL$̓bZ[WCӂ̏ꏊŉsꍇgp


    Exit

        @
         Sy1:   Exit {Do|For|Sub|Function}

                Do              :Do...Loop
                For             :For...Next
                Sub             :Sub XXX...End Sub
                Function        :Function XX...End Function

        gp
         Ex1:   Do
                   For Idx%=1 To 1000
                      Num%=Int(Rnd*100)
                      Select Case Num%
                        Case 10
                           MsgBox "For...Next Exit"
                           Exit For
                        Case 20
                           MsgBox "Do...Loop Exit"
                           Exit Do
                        Case 30
                           MsgBox "Sub... Exit"
                           Exit Sub
                        Case Else
                      End Select
                   Next Idx%
                Loop

        s  1000񃋁[vԂɗ𔭐10,20,30
                @ꍇΉExits

            Rnd݂̂ł͖񓯂ŗ锭邽
                Randomize Timer Rnd̑OŎsƗǂ


        ŌE  LЍ]\tgItBX
        Copyright Etosoftoffice Co.,LTD. 1992/07/01




