web-dev-qa-db-ja.com

if、else、else ifおよびend Lua

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")

私が得ているエラーは、「else」の近くにある「end」が期待されていることです(273行で「if」を閉じる)

また、各ifの後にendを追加する(これは行うべきではありませんが、とにかく試してみました)は動作しません...

英語に翻訳する必要がある場合は、私は喜んで解説やすべてを行いますが、この質問には必要ないと思いました。

27
Makenshi

else ifではなくelseifです(スペースに注意してください)。エラーは、インタープリターが各endブロックに対してelseを予期しているためです。

詳細については、 マニュアル を参照してください。

52
Markus Jarderot