14

我在 QBASIC 中有一个 IF 语句......是的...... QBASIC......

我一直在教别人编程(我认为这会很好而且很容易看出语法是如何工作的)。

...无论如何,我有这个代码:

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

但是当我输入“ do you like cheese?”时,它似乎只回复“ Yep, I like cheese”每隔一次......

任何人都可以对此有所了解吗?

注意:
do you like music?每次都有效...

注2:
输出截图:
替代文字

4

3 回答 3

4

您提供的代码看起来是正确的。

尝试以下方法之一:

  • 如果可能,请向我们发送更大的代码示例。我猜错误超出了您提供的代码。
  • 在第一个输入之前输出输入 ( a$)IF以确认您的代码将使用预期的输入。
  • 在大多数语言中,FALSE是零,其他任何东西都是真。但是,您可能希望更明确地使用以下IF (INSTR(a$) > 0).

编辑:你应该goto start在任何奶酪结果上加上一个。否则,它将进入musicGenre代码。

于 2010-09-16T13:15:52.563 回答
1
CLS

start:
    INPUT ">>", a$

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

GOTO start
musicGenre:
    INPUT ">>", m$
    SELECT CASE (m$)
        CASE "pop"
            PRINT "..pop! lol, baa baa"
        CASE "rock"
            PRINT "Rock is ok"
    END SELECT
RETURN
于 2013-07-06T22:10:09.410 回答
0

这个程序演示了在 Basic 中解析输入和 gosubs。

REM Cheese progran source:
CLS
DO
    INPUT ">>", a$
    a$ = LCASE$(a$)
    PRINT a$
    IF INSTR(a$, "do you") THEN
        IF INSTR(a$, "like") THEN
            IF INSTR(a$, "cheese") THEN
                PRINT "Yep, I like cheese":
            END IF
            IF INSTR(a$, "music") THEN
                PRINT "Depends, which genre?"
                GOSUB MusicGenre
            END IF
        ELSE
            IF INSTR(a$, "hate") THEN
                IF INSTR(a$, "cheese") THEN
                    PRINT "No, I like cheese"
                END IF
            END IF
        END IF
    END IF
LOOP
END
MusicGenre:
INPUT ">>>", m$
a$ = LCASE$(a$)
SELECT CASE (m$)
    CASE "pop"
        PRINT "..pop! lol, baa baa"
    CASE "rock"
        PRINT "Rock is ok"
END SELECT
RETURN
于 2016-08-27T02:40:43.110 回答