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 :
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.