PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu Arrays in Lua



ecki89
17.06.2016, 09:37
Hallo Leute,

ich bin Anfänger in Lua und möchte benachbarte Arrayelemente miteinander multiplizieren. Vielleicht könnt ihr mir weiterhelfen, wie ich das Problem löse.

Ich bekomme diese Fehlermeldung hier: attempt to perform arithmetic on field '?' (a nil value)

-----------------------------------------------------------------------------------------------------------------------------------------------
Hier der Code:

beispiel = {1,2,3}

for a, test in pairs(beispiel)do
if a <= table.getn(beispiel) and a<=a+1 then
test_var = beispiel[a] * beispiel[a+1]
--formel_new = math.sqrt(test_var)
end
end

------------------------------------------------------------------------------------------------------------------------------------------------

Es sollte dann herauskommen:

1*2 = 2
2*3 = 6


Danke für Eure Hilfe,
ecki89

monky2k6
21.06.2016, 19:36
Hey.

Zu deinem Code:

Benutze am besten nicht mehr table.getn, diese Funktion ist deprecated, also veraltet. Nutze stattdessen lieber #
Deine Überprüfung ob a <= a+1 ist macht keinen Sinn, denn dies wird immer True zurückgeben
Der Fehler tritt auf weil du prüfst ob der Key, also a, kleiner oder gleich dem Max ist. Wenn aber a == 3 ist, also dem Maximum der Tabelle entspricht, wird er versuchen auf beispiel[a+1] zuzugreifen, und das erzeugt den Fehler
Du kannst auf den aktuellen Wert in der Schleife direkt zugreifen, und zwar entspricht das test


Der Code könnte dann wie folgt aussehen:

beispiel = {1,2,3}

for a, test in pairs(beispiel) do
if a < #beispiel then
test_var = test * beispiel[a+1]
-- Mehr Mathe
end
end