为什么我们使用“如果结束”语句?

时间:2019-01-24 18:34:36

标签: if-statement basic qbasic

我们为什么要在此程序中编写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 个答案:

答案 0 :(得分:4)

需要

END IF来指示用多行编写的IF, ELSE IF, ELSE结构的结尾。如果没有END IF(缺少IF, ELSE IF, ELSE会导致错误),则在IF, ELSE IF, ELSE结构下的语句将被视为END IF结构的一部分,直到出现{{ 1}}。如果没有END IF,则IF, ELSE IF, ELSE结构的使用将被限制为只能在程序结束时使用

请考虑一种情况,如果条件为true,则要运行100条特定行;如果条件为false,则要运行100条其他行,并且必须始终在IF-ELSE结构之后执行另外100行。现在很明显,您无法将所有这200条IF ELSE相关行全部写在一行中。而且,如果没有END IF,那么将无法运行下100行。


END IF对于一行编写的IF, ELSE IF, ELSE语句无效。下一行中的任何语句都将被视为超出IF, ELSE IF, ELSE结构。并非总是可以在一行中编写所有必需的功能。因此,仅在某些情况下要触发可以在一行中编写的小功能时才可以使用它。因此,这就是这种单线方法的缺点。

答案 1 :(得分: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个数字的值,那将是极其困难的,例如:

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."

答案 2 :(得分:0)

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

<xsl:stylesheet version="1.0" 
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="text" omit-xml-declaration="yes" />
      <xsl:template match="RECIPES">
            <xsl:variable name="xml">
                  <description>
                        <xsl:element name="name">
                              <xsl:value-of select="NAME"/>
                        </xsl:element>
                        <xsl:element name="style">
                              <xsl:value-of select="STYLE/NAME"/>
                        </xsl:element>
                  </description>
            </xsl:variable>

            {<xsl:apply-templates select="$xml" mode="xml-to-json"/>}

      </xsl:template>



      <!-- Object or Element Property-->
      <xsl:template match="*" mode="xml-to-json">
            "<xsl:value-of select="name()"/>" :
            <xsl:call-template name="Properties">
                  <xsl:with-param name="parent" select="'Yes'"></xsl:with-param>
            </xsl:call-template>
      </xsl:template>

      <!-- Array Element -->
      <xsl:template match="*" mode="ArrayElement">
            <xsl:call-template name="Properties"/>
      </xsl:template>

      <!-- Object Properties -->
      <xsl:template name="Properties">
            <xsl:param name="parent"></xsl:param>
            <xsl:variable name="childName" select="name(*[1])"/>
            <xsl:choose>
                  <xsl:when test="not(*|@*)">
                        <xsl:choose>
                              <xsl:when test="$parent='Yes'">
                                    <xsl:text>&quot;</xsl:text>
                                    <xsl:value-of select="."/>
                                    <xsl:text>&quot;</xsl:text>
                              </xsl:when>
                              <xsl:otherwise>"<xsl:value-of select="name()"/>":"<xsl:value-of select="."/>"</xsl:otherwise>
                        </xsl:choose>
                  </xsl:when>
                  <xsl:when test="count(*[name()=$childName]) > 1">{ "<xsl:value-of select="$childName"/>" :[<xsl:apply-templates select="*" mode="ArrayElement"/>] }</xsl:when>
                  <xsl:otherwise>{<xsl:apply-templates select="@*" mode="xml-to-json"/><xsl:apply-templates select="*" mode="xml-to-json"/>}</xsl:otherwise>
            </xsl:choose>
            <xsl:if test="following-sibling::*">,</xsl:if>
      </xsl:template>
</xsl:stylesheet>

答案 3 :(得分:-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