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

しかし、「」と入力すると、 1回おきにdo you like cheese?「」としか応答しないようです。Yep, I like cheese

誰かがこれに光を当てることができますか?

注:
do you like music?」は毎回機能します。

注2:
出力のスクリーンショット:
代替テキスト

4

3 に答える 3

4

指定したコードは正しいようです。

次のいずれかを試してください。

  • 可能であれば、より大きなコードサンプルをお送りください。エラーはあなたが提供したコードの外にあると思います。
  • a$最初の入力の前に入力()を出力してIF、コードが期待される入力で機能することを確認します。
  • ほとんどの言語では、FALSEはゼロであり、trueはそれ以外のものです。ただし、次のように、より明確にする必要がある場合があります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での入力とgosubの解析を示しています。

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 に答える