2017-04-01 5 views
2

Es wäre so wunderbar, wenn es mir sagen würde, was das unerwartete Symbol ist, aber leider nicht. Kann mir jemand bitte beraten, was mit diesem falsch ist:unerwartetes Symbol in der Nähe von '<='

for i = 1, 100 do 
if i <= 3 then 
local rowMenu = 1 
elseif <= 6 then 
local rowMenu = 2 
elseif <= 9 then 
local rowMenu = 3 
elseif <= 12 then 
local rowMenu = 4 
elseif <= 15 then 
local rowMenu = 5 
elseif <= 18 then 
local rowMenu = 6 
elseif <= 21 then 
local rowMenu = 7 
elseif <= 24 then 
local rowMenu = 8 
end 
end 

I berechnet die Platzierung von Objekten innerhalb der Schleife planen - es ist nicht komplett - aber ich verstehe nicht, warum diese shouldnt Arbeit.

Vielen Dank.

Antwort

5

Der Compiler sagt Ihnen, dass nach dem Anzeigen von elseif erwartet etwas, das einen Ausdruck beginnt, aber es gefunden <=, was nicht tut.

Sie müssen i explizit in allen Tests erwähnen:

elseif i <= 6 then 

Beachten Sie, dass diese Ketten von ifs können durch

rowMenu = 3*math.ceil(i/3) 

oder

rowMenu = 3*((i//3)+(i*i)%3) 
+0

Vielen Dank ersetzt werden das mir erklären. math.ceil wird für viele Dinge nützlich sein! – Atrag

+2

Ein weiteres Problem mit dem OP-Code ist die Zuweisung zu 'local rowMenu' innerhalb des IF-Blocks (s), die' rowMenu' danach unsichtbar macht. – tonypdmtr

Verwandte Themen