分支和循环结构

没有这些结构,程序将只能顺序执行,这将是非常拙劣的。

分支结构

这个结构允许根据条件表达式的真或假,执行一些指令。

If ... Then

这是最基本的结构:

If condition Then

Endif

condition*是条件表达式。条件符号可以是:

  • > :大于

  • < :小于

  • >= :大于等于

  • <= :小于等于

  • = :等于

  • <> :不等于

因此可以比较两个值,两个变量比较的示例:

If Variable1 = Variable2 Then

在这里,"="符号描述相等比较,而不是给变量赋值(就像a=1)。

现在,这是一个演示的示例:

    Public Sub Main()
    
      Dim age As Integer
    
      Print "How old are you? "
      Input age
    
      If age >= 18 Then
        Print "You are major."
      Else
        Print "You are minor."
      Endif
    
    End

ELSE关键字可选。例如:

    ' Gambas module file
    
    Public Sub Main()
    
      Dim power As Integer = 15  'power in ch
    
      If puissance < 15 Then
        Print "Do you want to change your car? :p "
      Endif
    
    End

另外注意,如果仅有一个指令被执行,ENDIF关键字是可选的:

    Public Sub Main()
    
      Dim power As Integer = 15  'power in ch
    
      If puissance < 15 Then Print "Do you want to change your car? :p "
    
    End

Select ... Case结构

当有多值条件时使用该结构。使用该结构,阅读代码会更清晰:

    Public Sub Main()
    
      Dim pays As string
    
      Print "De quel pays venez-vous ?"
      Input pays
      pays= lcase(pays) 'remove uppercase
    
      Select Case pays
         Case "france"
            Print "Bonjour !"
         Case "england"
            Print "Hello!"
         Case "espana"
            Print "Ola!"
         Case "portugal"
            Print "Hola !"
         Case Else
            print"??"
      End Select
    
    End

循环

循环允许重复一个或多个指令。有三种循环类型允许用不同的方式完成同样的功能。

For循环

For循环允许重复一个语句块/n/次。

    Public Sub Main()
    
      Dim i As Integer
    
      For i = 1 To 5
        Print "Value of i: " & i
      Next
    
    End

当Gambas第一次进入循环时,*i*的值是1,然后执行下一条指令,直到遇到NEXT关键字。Gambas返回到循环的起始,然后增加*i*变量直到值达到5。循环内部的指令将会执行5次:

Value of i: 1
Value of i: 2
Value of i: 3
Value of i: 4
Value of i: 5

Do ... Loop循环

有时候我们不知道循环的次数,但是我们知道循环停止的条件。这是一个示例:

    Public Sub Main()
    
      Dim result As integer
    
      Print "How many two and two?"
    
      Do
         Input result
      Loop Until result = 4
    
      PRINT "Congratulation! You have found :-) "
    
    End

也能用WHILE关键字代替UNTIL关键字构建带条件的循环结构。

    Do
      Input result
    Loop While result <> 4

While循环

关于WHILE,这是一个专用的While循环结构:

    ' Gambas module file
    
    Public sub Main()
    
      Dim age As Integer
    
      While age < 10
        Inc age
        Print "Value of age : " & age
      Wend
    
    End

结果:

Value of age : 1
Value of age : 2
Value of age : 3
Value of age : 4
Value of age : 5
Value of age : 6
Value of age : 7
Value of age : 8
Value of age : 9
Value of age : 10

循环介绍完了,你可以去阅读接下来的教程。