web-dev-qa-db-fra.com

si, sinon, sinon si et fin Lua

Une idée pourquoi c'est mal à Lua?

       if Pieza == 1 then
            if Rotacion == 1 then
                Piezas = Cuadrado1
            else if Rotacion == 2 then
                Piezas = Cuadrado2
            else if Rotacion == 3 then --this is Line 273
                Piezas = Cuadrado3
            else if Rotacion == 4 then
                Piezas = Cuadrado4
            else
                io.write("Me Envio una rotacion que no existe? \n");
            end 
--this end closes the if inside the first if the one using to compare Rotacion
        else if Pieza == 2 then
            if Rotacion == 1 then
                Piezas = I1
            else if Rotacion == 2 then
                Piezas = I2
            else if Rotacion == 3 then
                Piezas = I3
            else if Rotacion == 4 then
                Piezas = I4
            else
                io.write("Me Envio una rotacion que no existe? \n");
            end
--this end closes the if inside the first if the one using to compare Rotacion
        else  --this else is in case Pieza != 1 || 2
            io.write("Me Envio una pieza que no existe? \n");
        end --this close the whole if (the one comparing "Pieza")

L'erreur que je reçois est cette "fin" attendue (pour fermer "si" à la ligne 273) près de "autre"

De plus, l'ajout de fin après chaque if (ce n'est pas ce qui devrait être fait mais a quand même essayé) ne fonctionne pas ...

Si vous avez besoin de moi pour traduire en anglais, je ferai volontiers des commentaires et tout, mais je pensais que ce n'était pas nécessaire pour cette question.

27
Makenshi

C'est elseif, pas else if (remarquez l'espace). L'erreur est due au fait que l'interpréteur attend un end pour chaque bloc else.

Voir le manuel pour plus d'informations.

52
Markus Jarderot