Test control and loop structures

Sans ces structures, nos programmes fonctionneraient de manière séquentielle, et seraint très pauvres.

Structures de comparaison

Ceci permet d'exécuter certaines instructions selon qu'une condition est vraie ou non.

If ... Then

C'est la structure la plus basique :

If condition Then

Endif

condition est l'expression a tester. Les signes de comparaison sont :

  • > : strictement plus grand que

  • < : strictement plus petit que

  • >= : plus grand ou égal

  • <= : plus petit ou égal

  • = : égal

  • <> : différent

Ainsi nous pouvons comparer deux valeurs, deux variables par exemple :

If Variable1 = Variable2 Then

Ici, le signe "=" indique un test d'égalité, et non pas une assignation de valeur à variable (comme dans a = 1).

Maintenant, voici un exemple qui montre cela :

Public Sub Main()

  Dim age As Integer

  Print "Quel age avez vous ? "
  Input age

  If age >= 18 Then
    Print "Vous êtes majeur."
  Else
    Print "Vous êtes mineur."
  Endif

End

Le mot clé ELSE est optionnel. Exemple :

' Fichier module Gambas

Public Sub Main()

  Dim power As Integer = 15  'puissance en ch

  If puissance < 15 Then
    Print "Voulez vous changer de voiture ? :p "
  Endif

End

Autre remarque, le mot clé ENDIF est optionnel s'il n'y a qu'une instruction a exécuter :

Public Sub Main()

  Dim power As Integer = 15  'puissance en ch

  If puissance < 15 Then Print "Voulez vous changer de voiture ? :p "

End

La structure Select ... Case

On utilise cette structure quand il y a beaucoup de valeurs a comparer. Avec cette structure, notre code est plus facile à lire :

Public Sub Main()

  Dim pays As string

  Print "De quel pays venez-vous ?"
  Input pays
  pays= lcase(pays) 'supprime les majuscules

  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

Boucles

Les boucles permettent de répéter une ou plusieurs instructions. Trois types de boucles existent permettant de faire la même chose de différentes manières.

For

La boucle For permet de répéter un bloc d'instructions n fois.

Public Sub Main()

  Dim i As Integer

  For i = 1 To 5
    Print "Value of i: " & i
  Next

End

Quand Gambas entre pour la première fois dans la boucle , il affecte la valeure 1 à i, puis execute les instructions suivantes jusqu'à ce quil rencontre le mot clé NEXT . Gambas retourne au début de la boucle, puis incremente la variable i jusqu'a ce qu'elle atteigne 5. Les instructions dans la boucle seront lues 5 fois :

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

Do ... Loop

Parfois, nous ne connaissons pas le nombre de boucles à effectuer. Mais nous savons comment cela doit s'arrêter. Voici un exemple :

Public Sub Main()

  Dim result As integer

  Print "Combien font deux et deux ?"

  Do
     Input result
  Loop Until result = 4

  PRINT "Super! tu as trouvé :-) "

End

Nous pouvons aussi utiliser le mot clé WHILE à la place de UNTIL pour faire une structure de boucle avec une condition.

Do
  Input result
Loop While result <> 4

While

A propos de WHILE, il y a une structure de boucle spéciale pour "Tant que" :

' Gambas module file

Public sub Main()

  Dim age As Integer

  While age < 10
    Inc age
    Print "Value of age : " & age
  Wend

End

Resultat :

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

Vous pouvez passer au tutoriel suivant, nous en avons fini avec les boucles.