转移语句Zhuanyi yuju
转移语句的作用是控制程序的流向,使之脱离原有顺序。例如用试除法判定一个自然数N是否是素数, 具体做法是用从2到k(k是平方大于N的最小自然数) 的自然数依次去除N,作每一次整数除法时,有两种可能的情况:除尽或除不尽。如果直到最后每一次都除不尽,N就是素数;否则, 就有Z与k间的一个自然数能整除N, 此时N是合数。这样的问题无法通过单纯地顺序执行的程序求解,程序需根据不同的中间结果转向。因此,程序设计语言中需要有转移语句。
BASIC语言提供两种转移语句, 条件转移IFTHEN, 和无条件转移GOTO, 条件转移语句的格式为:
〈行号〉 IF 〈表达式〉 THEN〈语句〉 〔 {; 〈语句〉}〕其中IF之后的表达式取逻辑值,称为条件,执行方式为:如果IF之后的条件成立,则执行THEN子句, 否则跳过THEN子句执行下一行的语句,THEN子句是一个语句序列。当THEN子句为一无条件转移语句时, IF 〈条件〉 THEN GOTO 〈行号〉 允许简写为IF 〈条件〉 GOTO 〈行号〉 或IF 〈条件〉 THEN〈行号〉。
无条件转移语句的格式为:
〈行号〉GOTO〈行号〉
其执行方式为,转去执行GOTO之后的行号所指的语句。
前述素数判定问题可以用下面的程序求解:
10 INPUT N
20 FOR k=2 TO SQR (N)′
30 IF N=k*INT (N/k)THEN PRINT
“N IS NOT A PRIME”: GOTO 60
40 NEXT
50 PRINT “N IS A PRIME”
60 END
程序中SQR及INT均为BASIC的标准函数OSQR是平方根函数,INT是取整函数,INT(X)为不超过x的最大整数。条件句 IEN子句中有两个语句:PRINT与GOTO, 注意IHEN子句的语句之间须用冒号隔开。
条件语句可以嵌套,即THEN子句中允许出现IF语句。