Ocelet

Instructions et opérateurs du langage

Nous avons réunis dans cette section les instructions et opérateurs de base du langage et qui peuvent être utilisés dans un scenario, un service d'entité, ou dans une fonction d'interaction.


Contenu

  1. Déclaration et affectation
  2. Opérateurs de calcul
  3. Tests et opérateurs conditionnels
  4. Instructions de boucle

Déclaration et affectation

Deux instructions permettent de déclarer une variable et lui affecter une valeur : let et fix. La première crée une variable, c'est à dire qu'il est possible de modifier sa valeur par la suite, alors que la seconde crée une constante.


let

Mot clé du langage qui permet de déclarer une variable.

Syntaxe :

let identifiant de variable = valeur initiale

L'identifiant de variable doit impérativement commencer par une lettre (minuscule de préférence) mais peut éventuellement être suivi par des chiffres, et ne pas contenir d'espace ni de caractère spéciaux.

Ocelet possède un mécanisme d'inférence de type, c'est à dire que le type de la variable que l'on déclare est déduit de la valeur initiale qui lui est affectée.

Exemple :

let t=0               // Construit une variable de type Integer, initialisée à 0
let v = 12.4764       // Construit une variable de type Double
let ff = new MyEntity // Construit une variable de type MyEntity

v = v+1  // Changement de la valeur affectée à la variable v    


fix

Mot clé du langage permettant de déclarer une constante.

Syntaxe :

fix identifiant de constante = valeur

L'identifiant de constante doit impérativement commencer par une lettre (minuscule de préférence) mais peut éventuellement être suivi par des chiffres, et ne pas contenir d'espace ni de caractère spéciaux.

Ocelet possède un mécanisme d'inférence de type, c'est à dire que le type de la constante que l'on déclare est déduit de la valeur initiale qui lui est affectée.

Il n'est pas possible de modifier la valeur affectée à une constante.

Exemple :

fix tmax = 1000
fix ldays = List<String>|of("Lundi","Mardi","Mercredi","Jeudi","Vendredi")
Retour en début de page  

Opérateurs de calcul

Opérateurs arithmétiques

Les opérateurs arithmétiques peuvent être utilisés sur des variables de type numérique.

  • + : addition
  • - : soustraction
  • * : multiplication
  • / : division
  • % : reste de la division entière
  • ** : puissance

Exemple :

let a = 15.0
let b = 4.0
let c = a+b  // c vaut 19.0
let d = a-b  // d vaut 11.0
let e = a*b  // e vaut 60.0
let f = a/b  // f vaut 3.75
let g = a%b  // g vaut 3.0
let h = a**b // h vaut 50625.0

Concaténation

  • + : lorsque cet opérateur est appliqué sur des variables de type String il représente une concaténation, c'est à dire un assemblage entre deux textes.

Exemple :

let nom = "Martin"
println("Bonjour "+nom+" !") // affiche : Bonjour Martin !
let nom2 = nom+"e"
println("Bonjour "+nom2+" !") // affiche : Bonjour Martine !
Retour en début de page  

Tests et opérateurs conditionnels

if ... else

Les instructions if et else permettent d'effectuer une opération seulement si une condition est remplie.

Syntaxes :

if (condition) expressions

La condition est de type Boolean et s'écrit à l'aide d'opérateurs conditionnels. Les expressions ne seront exécutées que si la condition est vérifiée.

On peut ajouter le mot clé else pour indiquer les expressions à exécuter dans le cas où la condition est fausse.

if (condition) expressions else expressions

Exemples :

if (temperature > 100) etat = "vapeur d'eau"
if (temperature <= 0 ) etat = "glace"

if ((temperature > 0) && (temperature < 100)) etat="liquide"

if (i >= imax) println("Le seuil est atteint.")
  else println("Seuil non atteint.")

Si l'on veut exécuter plusieurs expressions dans le cas où la condition est vrai, il faut placer ces expressions entre accolades :

if (i >= imax) {
  println("Le seuil est atteint.")
  i = 10
}  


Opérateurs conditionnels

Pour effectuer un test, ou pour évaluer si l'on continue l'exécution d'une boucle, on doit écire la condition à évaluer. Le résultat de cette évaluation est de type Boolean, c'est à dire soit true (vrai) soit false (faux).

Cette condition fait appel à des opérateurs conditionnels :

  • && : ET
  • || : OU
  • ! : NON
  • == : Egalité
  • != : Inégalité
  • > : Supérieur
  • < : Inférieur
  • >= : Supérieur ou égal
  • <= : Inférieur ou égal
Retour en début de page  

Instructions de boucle

Les instructions de boucle sont des instructions de contrôle qui permettent de répéter une série d'opérations plusieurs fois de suite, jusqu'à ce qu'une condition soit remplie.


for

Permet de répéter une série d'opérations lorsque l'on peut connaitre à l'avance le nombre d'itérations, ou que l'on souhaite parcourir une collection d'éléments.

Syntaxe :

for (variable:collection) expressions

L'expression sera exécutée autant de fois qu'il y a d'éléments dans la collection. Pour chaque itération, la variable prendra la valeur d'un élément de la collection et cette variable sera disponible pour être utilisée dans l'expression (ou la série d'expressions).

Exemples :

for (i:1..10) print(i+" ") // Affiche : 1 2 3 4 5 6 7 8 9 10

let lmois = List|of("Mars","Avril","Mai")
for (mois:lmois) {
  println("Mois :"+mois)  // Affiche successivement les trois valeurs
}

Une autre forme est possible qui permet plus de souplesse sur la variable d'itération, par exemple pour la faire progresser avec un pas différent de 1 :

for (let variable = valeur initiale;condition d'arrêt ; expression d'incrémentation) expressions

Exemple :

  for (let i=0 ; i <= 20 ; i=i+5) {
      println("i="+i)
  }  // --> 0 5 10 15 20 


while

Permet de répéter une série d'opération tant qu'une condition est vérifiée. La condition est évaluée avant d'exécuter les expressions. Il est donc possible que les expressions placées derrière le while ne soit jamais exécutées (si la condition est fausse dès le départ).

Syntaxe :

while (condition) expressions

Si l'on souhaite placer plusieurs expressions selon le while, il faut les encadrer avec des accolades.

Exemple :

let seuil = 55.0
station.temp = 20.0   // Doit être initialisé avant le while
while(station.temp < seuil) {
  station.updateTemp()   // station.temp est remis à jour par cette fonction
}


do .. while

Permet de répéter une série d'opérations tant qu'une condition est vérifiée. La condition est évaluée après avoir exécuté les expressions. On est donc certain d'exécuter au moins une fois les expressions situées entre do et while.

Syntaxe :

do expressions while (condition)

Si l'on souhaite placer plusieurs expressions entre do et while, il faut les encadrer avec des accolades.

Exemple :

let seuil = 55.0
do {
  station.updateTemp()   // la mise à jour de station.temp sert aussi d'initialisation
} while (station.temp < seuil)
Retour en début de page