Search code examples
qbasic

Here's an old school IF statement for you, but there is a problem


I have an IF statement in QBASIC... yes... QBASIC...

I have been teaching someone to program (I decided this would be nice and easy to see how the syntax works).

...Anyway, I have this code:

CLS

start:
INPUT ">>", a$

PRINT a$
IF (INSTR(a$, "do you")) THEN
    IF (INSTR(a$, "like")) THEN
        IF (INSTR(a$, "cheese")) THEN PRINT "Yep, I like cheese":
        IF (INSTR(a$, "music")) THEN PRINT "Depends, which genre?": GOTO musicGenre
    ELSE IF (INSTR(a$, "hate")) THEN
            IF (INSTR(a$, "cheese")) THEN PRINT "No, I like cheese"
        END IF
    END IF
END IF


musicGenre:
INPUT ">>", m$
SELECT CASE (m$)
    CASE "pop"
        PRINT "..pop! lol, baa baa"
    CASE "rock"
        PRINT "Rock is ok"
END SELECT
GOTO start

But when I type "do you like cheese?" it seems to only reply "Yep, I like cheese" every other time...

Could anyone shed some light on this?

note:
"do you like music?" works every time...

note 2:
Screenshot of the output:
alt text


Solution

  • Your code you provided appears correct.

    Try one of the following:

    • If possible, send us a larger code sample. I'm guessing the error is outside the code you provided.
    • Output the input (a$) before the first IF to confirm your code will be working with the expected input.
    • In most languages, FALSE is zero and true is anything else. However, you may want to be more explicit with the following IF (INSTR(a$) > 0).

    EDIT: You should put a goto start on any cheese result. Otherwise, it's going to the musicGenre code.