Introduction au Lua/Conditions

Début de la boite de navigation du chapitre

Les modules Mediawiki sont des scripts Scribunto qui utilisent une table locale comme interface. Ils peuvent contenir une ou plusieurs fonctions qui reçoivent en entrée les données de la table. Le code des fonctions suit les règles du langage Lua lui-même. Nous avons abordé ses variables, la syntaxe de ses expressions. Les conditions sont des structures de code utilisées pour faire des choix et contrôler le déroulement du script. Cette leçon montre comment utiliser des conditions dans vos scripts[1].

Conditions
Icône de la faculté
Chapitre no 7
Leçon : Introduction au Lua
Chap. préc. :Expressions
Chap. suiv. :Boucles
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Introduction au Lua : Conditions
Introduction au Lua/Conditions
 », n'a pu être restituée correctement ci-dessus.

Prérequis

modifier

Cette leçon suppose que vous ayez assimilé la leçon Expressions.

Créer un script Lua avec...

modifier
  1. Accéder au Module:Sandbox.
  2. Supprimer le code existant.
  3. Ajouter le code suivant et enregistrer la page:
local p = {}
 
function p.conditions()
    local hour
    local result
 
    hour = tonumber(os.date('%H'))
    if hour < 12 then
        result = 'Bonne matinée&nbsp;!'
    elseif hour < 18 then
        result = 'Bonne journée&nbsp;!'
    else
        result = 'Bonsoir&nbsp;!'
    end
 
    return result
end
 
return p

Tester votre nouveau script

modifier
  1. Rendez-vous sur "votre page de test".
  2. Ajouter le code suivant et enregistrer la page:
{{#invoke:Sandbox|conditions}}

Le résultat doit correspondre à ceci :

Bonne matinée!

ou

Bonne journée!

ou

Bonsoir!

en fonction de l'heure actuelle Temps Universel Coordonnée.

Comprendre le nouveau script

modifier
  1. local et le code qui suit défini les variables hour et result. Les deux sont nil.
  2. os.date('%H') retourne l'heure du serveur courant via une valeur comprise entre 0 et 23 sous forme de chaine de caractères. Typiquement l'heure du serveur est réglée sur le temps universel plutôt que sur l'heure locale.
  3. tonumber() Convertit la chaine de caractères en valeur numérique.
  4. hour = Assigne la valeur numérique correspondant à l'heure du serveur à la variable hour.
  5. if hour < 12 then Marque le début du bloc de code correspondant à une condition et vérifie la valeur de hour pour déterminer si elle est inférieure à 12. Si la condition est respectée, les instructions suivantes seront exécutées sinon elles seront ignorées.
  6. result = 'Bonne matinée!' Affecte le message 'Bonne matinée' comme valeur de la variable result.
  7. elseif hour < 18 then Une deuxième condition vérifie si hour est inférieur à 18. Dans l'affirmative le code qui suit sera exécuté sinon il sera ignoré.
    • Ces conditions sont dites mutuellement exclusives. Si la première est vraie (if), la seconde (elseif) ne sera pas évaluée.
    • elseif est optionnel dans la syntaxe d'une condition, et peut Être répété.
  8. else Contient le code qui sera exécuté si aucune des conditions suivantes n'est respectée. Si une des conditions précédente est respectée les instructions qui suivent ce mot-clé seront ignorées.
    else est optionnel dans un bloc de condition.
  9. end Termine le bloc de code correspondant à la condition.
  10. return result Retourne la valeur contenu dans la variable result comme résultat de la fonction.

Conclusion

modifier

Félicitations ! Vous êtes capable de créer, tester et comprendre un script Lua qui contient des conditions. Continuez avec la leçon Boucles.

Voir aussi

modifier

Références

modifier

Lua for Wikiversity by Dave Braunschweig (en)