4

为什么我们END IF在这个程序中写语句?不写它,我们可以很容易地得到我们的结果。有没有什么例子可以解释一下END IF语句的使用?

我试过这个:

INPUT X
IF X>10 THEN PRINT "X IS GREATER THAN 10" ELSE PRINT "X IS NOT GREATER THAN 10"
END

然后我也得到了预期的结果。

真正的代码是:

INPUT X
IF X>10 THEN 
    PRINT "X IS GREATER THAN 10"
ELSE
    PRINT "X IS NOT GREATER THAN 10"
END IF
END

预期和期望的
示例:
当然X=5后输出将是“X 不大于10”。

4

4 回答 4

5

END IF需要指示以IF, ELSE IF, ELSE多行编写的结构的结尾。如果不存在END IF(不存在将导致错误),则IF, ELSE IF, ELSE结构下的语句将被视为结构的一部分,IF, ELSE IF, ELSE直到出现END IF. 如果没有END IF,则IF, ELSE IF, ELSE结构的使用将仅限于在程序结束时使用

考虑这样一种情况,如果条件为真,您希望运行 100 行特定的行,如果条件为假,则需要运行 100 行其他行,并且必须始终在IF-ELSE结构之后执行另外 100 行。现在很明显,您不能将所有这 200IF ELSE条相关行都写在一行中。如果没有,END IF那么就没有办法运行接下来的 100 行。


END IFIF, ELSE IF, ELSE对一行写的语句无效。下一行中的任何语句都将被视为IF, ELSE IF, ELSE结构之外。并非总是可以在一行中编写所有必需的功能。所以,它只能在基于某些条件触发一个可以写在一行中的小功能时使用。所以这是这种单线方法的缺点。

于 2019-01-24T18:53:52.443 回答
2

多个缩进的 if/then/else 语句可以比单行语句更容易组合成一个结构,例如:

INPUT X
IF X > 10 THEN
    PRINT "X is greater than 10."
ELSE
    IF X < 10 THEN
        PRINT "X is less than 10."
    ELSE
        PRINT "X is equal to 10."
    END IF
END IF

这与以下内容相同:

INPUT X
IF X > 10 THEN PRINT "X is greater than 10." ELSE IF X < 10 THEN PRINT "X is less than 10." ELSE PRINT "X is equal to 10."

极其困难的是在一行中测试 3 个数字的值 if/then,例如:

INPUT X, Y, Z
IF X = 0 AND Y = 0 AND Z = 0 THEN PRINT "All zero." ELSE IF X = 0 AND Y <> 0 AND Z = 0 THEN PRINT "X and Z zero." ELSE IF X <> 0 AND Y = 0 AND Z = 0 THEN PRINT "Y and Z zero." ELSE IF X = 0 AND Y = 0 AND Z <> 0 THEN PRINT "X and Y zero." ELSE IF X <> 0 AND Y <> 0 AND Z = 0 THEN PRINT "X and Y non-zero." ELSE IF X <> 0 AND Y = 0 AND Z <> 0 THEN PRINT "X and Z non-zero." ELSE IF X = 0 AND Y <> 0 AND Z <> 0 THEN PRINT "Y and Z non-zero." ELSE PRINT "All non-zero."
于 2019-01-26T04:09:22.910 回答
0

确定 3 个输入值的另一个示例:

COLOR 15
DO
    PRINT "Enter values(y/n)";: INPUT x$
    IF LCASE$(x$) = "n" THEN END
    PRINT "Enter X,Y,Z";: INPUT X, Y, Z
    GOSUB Calculate
LOOP
END
Calculate:
SELECT CASE X
    CASE IS > 0
        SELECT CASE Y
            CASE IS > 0
                SELECT CASE Z
                    CASE IS > 0
                        PRINT "X is positive, Y is positive, Z is positive."
                    CASE IS < 0
                        PRINT "X is positive, Y is positive, Z is negative."
                    CASE ELSE
                        PRINT "X is positive, Y is positive, Z is zero."
                END SELECT
            CASE IS < 0
                SELECT CASE Z
                    CASE IS > 0
                        PRINT "X is positive, Y is negative, Z is positive."
                    CASE IS < 0
                        PRINT "X is positive, Y is negative, Z is negative."
                    CASE ELSE
                        PRINT "X is positive, Y is negative, Z is zero."
                END SELECT
            CASE ELSE
                SELECT CASE Z
                    CASE IS > 0
                        PRINT "X is positive, Y is zero, Z is positive."
                    CASE IS < 0
                        PRINT "X is positive, Y is zero, Z is negative."
                    CASE ELSE
                        PRINT "X is positive, Y is zero, Z is zero."
                END SELECT
        END SELECT
    CASE IS < 0
        SELECT CASE Y
            CASE IS > 0
                SELECT CASE Z
                    CASE IS > 0
                        PRINT "X is negative, Y is positive, Z is positive."
                    CASE IS < 0
                        PRINT "X is negative, Y is positive, Z is negative."
                    CASE ELSE
                        PRINT "X is negative, Y is positive, Z is zero."
                END SELECT
            CASE IS < 0
                SELECT CASE Z
                    CASE IS > 0
                        PRINT "X is negative, Y is negative, Z is positive."
                    CASE IS < 0
                        PRINT "X is negative, Y is negative, Z is negative."
                    CASE ELSE
                        PRINT "X is negative, Y is negative, Z is zero."
                END SELECT
            CASE ELSE
                SELECT CASE Z
                    CASE IS > 0
                        PRINT "X is negative, Y is zero, Z is positive."
                    CASE IS < 0
                        PRINT "X is negative, Y is zero, Z is negative."
                    CASE ELSE
                        PRINT "X is negative, Y is zero, Z is zero."
                END SELECT
        END SELECT
    CASE ELSE
        SELECT CASE Y
            CASE IS > 0
                SELECT CASE Z
                    CASE IS > 0
                        PRINT "X is zero, Y is positive, Z is positive."
                    CASE IS < 0
                        PRINT "X is zero, Y is positive, Z is negative."
                     CASE ELSE
                        PRINT "X is zero, Y is positive, Z is zero."
                END SELECT
            CASE IS < 0
                SELECT CASE Z
                    CASE IS > 0
                        PRINT "X is zero, Y is negative, Z is positive."
                    CASE IS < 0
                        PRINT "X is zero, Y is negative, Z is negative."
                    CASE ELSE
                        PRINT "X is zero, Y is negative, Z is zero."
                 END SELECT
            CASE ELSE
                SELECT CASE Z
                     CASE IS > 0
                        PRINT "X is zero, Y is zero, Z is positive."
                    CASE IS < 0
                        PRINT "X is zero, Y is zero, Z is negative."
                    CASE ELSE
                         PRINT "X is zero, Y is zero, Z is zero."
                END SELECT
         END SELECT
END SELECT
RETURN
于 2019-03-11T04:47:29.590 回答
-1

另一种方法是使用选择案例:

INPUT X
SELECT CASE X
    CASE IS > 10
        PRINT "X is greater than 10."
    CASE IS < 10
        PRINT "X is less than 10."
    CASE ELSE
        PRINT "X is equal to 10."
END SELECT
于 2019-03-09T04:46:56.263 回答