跳转到内容

BASIC 编程/BASIC 入门/控制结构/IF...THEN...ELSEIF...ELSE

来自维基教科书,开放的书籍,用于开放的世界

IF...THEN...ELSEIF...ELSE控制语句允许识别某个条件是否为真,如果为真,则执行代码块。

10 CLS
20 IF number<0 THEN PRINT "Number is negative" REM Single line if
30 ELSEIF number>0 THEN
40   PRINT "Number is positive" REM Two line if/elseif
50 ELSE
60   PRINT "Number is zero"
70 END IF

在某些 BASIC 实现中(但大多数版本允许),IF 语句可能需要包含在一行中。但是,在这种情况下 ELSEIF 可能不可用,并且不需要显式 END IF

10 CLS
20 IF number<0 THEN PRINT "Number is negative" ELSE PRINT "Number is non-negative"

这延续到某些 BASIC 实现中,如果“IF...THEN”语句后面紧跟着同一行上的代码,则它完全包含在内。也就是说,编译器假设该行以“ENDIF”结尾,即使没有声明。这在处理嵌套的“IF...THEN”子句时很重要

10 CLS
20 IF X<2 THEN
30   IF 2<3 THEN PRINT "This is printed if X is 1"
40 ELSE
50   IF 3<4 THEN PRINT "This is printed if X is 3"
60 END IF

ELSE 子句虽然在“IF 2<3”语句之后,但与“IF X<2”语句相关联,因为“IF 2<3”语句在同一行上有一个 PRINT 语句。

让我再举一些“if-then-else”程序的例子

Q1)输入一个人的年龄,检查他/她是否是选民?

Ans1) 10 CLS 20 INPUT AGE 30 IF AGE>=18 THEN 40 PRINT "VOTER" 50 ELSE 60 PRINT "NON VOTER" 70 END IF 80 END

Q2)输入一个人的年龄,检查他/她是否是老年人还是非老年人?

Ans2) 10 CLS 20 INPUT AGE 30 IF AGE>=60 THEN 40 PRINT "SENIOR CITIZEN" 50 ELSE 60 PRINT "NOT A SENIOR CITIZEN" 70 END IF 80 END

华夏公益教科书