2012-05-02 44 views
22

¿Alguna idea de por qué esto está mal en Lua?if, else, else if y end 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") 

El error que estoy recibiendo es este 'fin' esperado (para cerrar 'si' en la línea 273) cerca de 'otra cosa'

Además, la adición de final después de cada caso (esto no es lo que debería hacerse pero lo intenté de todos modos) no está funcionando ...

Si me necesitas para traducir al inglés con mucho gusto lo haré comentarios y todo, pero pensé que no era necesario para esta pregunta.

+1

Esta es una buena pregunta. ¡Tuve el mismo problema cuando empecé a programar con Lua! –

+1

jaja, sí, en realidad estoy acostumbrado a C++ yC#, de lo contrario, si me parece correcto XD – Makenshi

Respuesta

46

Es elseif, no else if (tenga en cuenta el espacio). El error se debe a que el intérprete espera un end en cada bloque else.

Consulte the manual para obtener más información.

+2

wow noob error jaja ty – Makenshi

+1

Esperaba una respuesta dando una alternativa a muchos if/else, como una declaración de cambio :-) –