Jump to content




If then statement not working


  • You cannot reply to this topic
3 replies to this topic

#1 WillisDoering

  • Members
  • 6 posts

Posted 09 March 2015 - 02:26 AM

It keeps returning that line 33 needs a 'then'. There is a 'then' so whats the problem?
rednet.open("top")
disp = peripheral.wrap("right") --insert side of monitor
disp.clear()
-- screen display
disp.setCursorPos(18,1)
disp.write("X")
disp.setCursorPos(1,1)
disp.write("O Forward")
disp.setCursorPos(1,2)
disp.write("O Back")
disp.setCursorPos(10,1)
disp.write("O Left")
disp.setCursorPos(10,2)
disp.write("O Right")
disp.setCursorPos(1,3)
disp.write("O Up")
disp.setCursorPos(1,4)
disp.write("O Down")
disp.setCursorPos(10,3)
disp.write("O Break")
disp.setCursorPos(10,4)
disp.write("O Dig")
disp.setCursorPos(5,5)
disp.write("<- O  O ->")
-- remote commands
while true do
  event, side, x, y = os.pullEvent()
  if x = 18 and y = 1 then
	disp.clear()
	disp.setCursorPos(3,3)
	disp.write("Shutting Down...")
	os.sleep(2)
	os.shutdown()
   else
	rednet.send(7, x)
	rednet.send(7, y)
  end
end


#2 Lyqyd

    Lua Liquidator

  • Moderators
  • 8,465 posts

Posted 09 March 2015 - 02:29 AM

The problem is that you're using an assignment operator instead of a comparison operator in your if statement. My favorite sticky post has more details if you need them.

#3 WillisDoering

  • Members
  • 6 posts

Posted 09 March 2015 - 02:36 AM

How silly of me. Thanks for the help and I'll keep the link for future reference.

#4 Bomb Bloke

    Hobbyist Coder

  • Moderators
  • 7,099 posts
  • LocationTasmania (AU)

Posted 09 March 2015 - 02:53 AM

One thing that's worth bearing in mind is that when Lua tells you "expected: such-and-such", what it's really doing is asking "you wrote something which can't go here, did you mean such-and-such?".

The "something which can't go there" typically isn't specified, so it's up to you to read the line and spot the mistake.

What's also worth bearing in mind is that the Lua interpreter is quite flexible in terms of line breaks. This means that if you don't finish a command on one line, it often won't throw an error - it'll simply assume you finished it on the next line, and keep reading. This often in turn leads to another "expected: such-and-such" when that next line doesn't contain the rest of the missing command.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users