Table des matières
Dans les tutoriels précédents, nous avons vu comment Lua permet la gestion dynamique des valeurs et des types, se distinguant toujours par sa simplicité et sa polyvalence lors de l'exécution de ces opérations.Mais ce n'est pas tout Lua offre en termes de simplicité, il supporte classiquement les déclarations que l'on peut trouver dans les langages comme dans C ou alors PascalLorsque ces déclarations incluent des affectations et des structures de contrôle, nous pouvons même tomber sur des méthodes non conventionnelles telles que des affectations multiples et des déclarations locales.
Les devoirs en Lua Ils sont extrêmement simples, et ils fonctionnent pour changer la valeur d'une variable à un certain moment dans notre programme, voyons un exemple simple utilisant la console interactive de Lua, que l'on peut saisir en plaçant le mot réservé lua Dans la borne :
Lua vous pouvez même ajuster le nombre de valeurs pour le nombre de variables présentes, par exemple si la liste de valeurs est inférieure à la liste de variables, les variables supplémentaires reçoivent le type de valeur néant par défaut comme valeurs, voyons un exemple de ce processus :
En plus des variables globales, Lua Il supporte les variables locales qui, contrairement aux globales, ont une portée limitée, qui dépend du bloc dans lequel elles ont été déclarées, voyons comment déclarer une variable locale :
x = 10 local i = 1 tandis que i <= x do local x = i * 2 print (x) i = i + 1 end if i> 20 then local xx = 20 print (x + 2) else print (x) end imprimer (x)Si nous exécutons la même chose dans notre terminal, nous verrons comment le résultat peut ne pas être ce que nous attendons, et c'est parce que nous avons différents blocs dans lesquels nous utilisons les variables, voyons le résultat :
do local var1 = 16 local var2 = var1 + 20 x = 5 y = x + var1 end - Ici se termine la portée de var1 et var2 print (x, y) print (var1, var2)Lorsque nous l'exécuterons dans notre terminal, nous verrons que les variables x et y sont affichées sans problème car elles sont globales, mais pour var1 et var2 leur portée se termine par le bloc faire la fin, Voyons voir:
Structures de contrôleComme le reste des langages de programmation, Lua nous fournit un ensemble de structures de contrôle que nous pouvons utiliser dans nos programmes, en utilisant le bien connu si pour gérer les conditions et tandis que, répéter Oui pour pour les boucles itératives, où sauf répéter qui a le terminateur explicite jusqu'à et les autres se terminant par finir.
Comme dans la plupart des langages de programmation, la déclaration si vérifie une condition et exécute la partie du ensuite ou la partie de autre, où ce dernier peut être facultatif, voyons un ensemble de ces conditions comme on le voit dans nos programmes :
if var1 <0 then var1 = 0 end if var1 max lines then show () lines = 0 endIci, nous avons trois types d'opérations, la base avec le ensuite, en utilisant return pour renvoyer une valeur en fonction de la condition et un morceau de code légèrement plus complet qui appelle une fonction. En plus de cela, nous pouvons écrire si imbriqué à l'aide sinon, ce qui nous évite d'avoir à utiliser plusieurs prend fin, voyons à quoi cela ressemble :
if opération == "+" then result = a + b elseif operation == "-" then result = a - b elseif operation == "*" then result = a * b elseif operation == "/" then result = a / b else error ("Opération invalide") endIl est important de noter que ce n'est pas seulement plus optimal mais aussi nécessaire puisque Lua n'a pas les déclarations de type changer ce type de conditions imbriquées sera donc assez courant dans nos programmes.
Comme dans d'autres langues, Lua évaluer d'abord l'état du tandis que, si la condition est fausse, la boucle se termine et sinon les lignes de code suivantes sont exécutées et le processus est répété jusqu'à ce que la condition soit fausse, voyons un exemple simple pour illustrer cela :
local i = 1 tandis que var1 [i] imprime (var1 [i]) i = i + 1 end
Cette déclaration contrairement à la tandis que nous permet de répéter le code à l'intérieur de la condition jusqu'à ce qu'il soit vrai, où même ce code peut être exécuté au moins une fois puisque l'évaluation de la condition se fait à la fin, voyons un exemple :
répéter la ligne = os.read () jusqu'à ce que la ligne ~ = "" imprimer (ligne)
Concernant les cycles itératifs pour, Lua en a deux variantes, la pour numérique et le générique pour. Regardons la syntaxe du numérique pour :
pour var = exp1, exp2, exp3 finissentCette boucle exécutera quelque chose pour chaque valeur de var depuis exp1 jusqu'à exp2 en utilisant exp3 comme valeur pour augmenter ou diminuer var, si nous ne l'incluons pas Lua suppose par défaut que cela va un par un, voyons un exemple plus détaillé de ces cycles :
pour var = 1, f (x) imprime (var) end pour var2 = 10,1, -1 imprime (var2) endComme nous le voyons, son application est assez simple et nous permet d'implémenter les cycles itératifs utiles dans nos programmes, voyons maintenant la syntaxe du générique pour:
pour i, var in ipairs (array) do print (var) endCe que ce cycle fait, c'est utiliser la fonction qu'il nous donne Lua appel paires, qui est un itérateur de tableaux, où pour chaque itération i prend un indice, tandis que var obtient la valeur associée à cet indice.
Comme nous voyons les déclarations à l'intérieur Lua Ils ne diffèrent pas beaucoup des autres langages, cependant le langage ajoute cette simplicité supplémentaire pour nous donner un apprentissage beaucoup plus rapide de sa syntaxe et une utilisation beaucoup plus efficace. Avec cela, nous terminons ce didacticiel, où nous avons appris les affectations et les structures de contrôle au sein de Lua, ajoutant ainsi une autre couche de connaissances en ce qui concerne ce langage simple mais puissant.