Shop OBEX P1 Docs P2 Docs Learn Events
Help on Programming. — Parallax Forums

Help on Programming.

cedtinsicedtinsi Posts: 45
edited 2011-03-09 14:59 in BASIC Stamp
Thank you and Welcome.

I am trying to make a program work; but when I compile it, I receive a statement as: ELSEIF must be preceded by an IF.
Down below is my code.
I underlined the ELSEIF that the compiler pointed out as "must be precede by an IF"
I do not get it.
I still think I should not be having problem with that.

Please Help

Thank You






Main:
timeCounter=0
PAUSE 4000
timeCounter=timeCounter + 4000
IF (IN2=1)THEN GOTO wewillsee1
ELSEIF (IN3=1)THEN GOTO wewillsee1
ELSEIF (IN4=1)THEN GOTO wewillsee1
ELSEIF (IN1=1)AND(IN2=1)THEN GOTO wewillsee1
ELSEIF (IN1=1)AND(IN3=1)THEN GOTO wewillsee1
ELSEIF (IN1=1)AND(IN4=1)THEN GOTO wewillsee1
ELSEIF (IN2=1)AND(IN3=1)THEN GOTO wewillsee1
ELSEIF (IN1=1)AND(IN2=1)THEN
IF (IN3=1)THEN GOTO wewillsee1
ELSE (IN3=1)THEN GOTO wewillsee1
ENDIF
ELSEIF (IN1=1)AND(IN2=1)THEN
IF (IN4=1)THEN GOTO wewillsee1
ELSE (IN4=1)THEN GOTO wewillsee1
ENDIF
ELSEIF (IN2=1)AND(IN3=1)THEN
IF (IN4=1)THEN GOTO wewillsee1
ELSE (IN4=1)THEN GOTO wewillsee1
ENDIF
ELSE
IF (IN1=1)AND(IN2=1)THEN
IF (IN3=1)AND(IN4=1)THEN GOTO wewillsee1
ELSE (IN3=1)AND(IN4=1)THEN GOTO wewillsee1
ENDIF
ENDIF
ENDIF
IF (IN1=1)THEN
PAUSE 2000
ELSE
PAUSE 1
END
IF (IN1=1)THEN
IF (IN2=1)THEN
PAUSE 2000
ELSEIF (IN3=1) THEN
GOTO wewillsee2
ELSEIF (IN4=1) THEN
GOTO wewillsee2
ELSE
PAUSE 1
ENDIF
IF (IN1=1)THEN
IF (IN2=1)THEN
IF (IN3=1)THEN
PAUSE 4000
HIGH 15
LOW 14
ELSEIF (IN4=1)THEN
GOTO wewillsee3
ELSE
PAUSE 1
ENDIF
PAUSE 5000
IF (IN1=1)THEN
GOTO wewillsee4
ELSEIF (IN2=1)THEN
GOTO wewillsee4
ELSEIF (IN3=1)THEN
GOTO wewillsee4
ELSEIF (IN4=1)THEN
GOTO wewillsee4
ELSEIF (IN1=1)AND (IN2=1)THEN
GOTO wewillsee4
ELSEIF (IN1=1)AND (IN3=1)THEN
GOTO wewillsee4
ELSEIF (IN1=1)AND(IN4=1)THEN
GOTO wewillsee4
ELSEIF (IN2=1)AND(IN3=1)THEN
GOTO wewillsee4
ELSEIF (IN1=1)AND(IN2=1)THEN
IF (IN3=1)THEN
GOTO wewillsee4
ELSE (IN3=1)THEN
GOTO wewillsee4
ENDIF
ELSEIF (IN1=1)AND(IN2=1)THEN
IF (IN4=1)THEN
GOTO wewillsee4
ELSE (IN4=1)THEN
GOTO wewillsee4
ENDIF
ELSEIF (IN2=1)AND(IN3=1)THEN
IF (IN4=1)THEN
GOTO wewillsee4
ELSE (IN4=1)THEN
GOTO wewillsee4
ENDIF
ELSE
IF (IN1=1)AND(IN2=1)THEN
IF (IN3=1)AND(IN4=1)THEN
GOTO wewillsee4
ENDIF
ENDIF
ENDIF
PAUSE 1000
IF (timeCounter>=9000)THEN
GOTO wewillsee5
ELSE (timeCounter<9000)THEN
PAUSE 1
ENDIF
GOTO Main
wewillsee1:
PAUSE 8000
HIGH 13
LOW 12
PAUSE 5000
LOW 13
LOW 12
GOTO Main
END
wewillsee2:
PAUSE 6000
HIGH 13
LOW 12
PAUSE 5000
LOW 13
LOW 12
GOTO Main
END
wewillsee3:
PAUSE 8000
HIGH 13
LOW 12
PAUSE 5000
LOW 13
LOW 12
GOTO Main
END
wewillsee4:
PAUSE 5
HIGH 11
LOW 10
PAUSE 5000
LOW 11
LOW 10
GOTO Main
END
wewillsee5:
PAUSE 1
HIGH 13
LOW 12
PAUSE 5000
LOW 13
LOW 12
GOTO Main
END

Comments

  • Mike GMike G Posts: 2,702
    edited 2011-03-09 14:59
    Change
    IF (IN2=1)THEN GOTO wewillsee1
    

    to
    IF (IN2=1)THEN 
      GOTO wewillsee1
    ELSEIF
    

    or
    IF (IN2=1)THEN GOTO wewillsee1
    IF...
    

    The "IF (IN2=1)THEN GOTO wewillsee1" is a shorthand form of the If statement. This information is published in the PBASIC help file and STAMP manual.
Sign In or Register to comment.