运行结果:
8 5
在列2中两个变量交换数值的方法是引入中间变量,此时需用3个赋值语句才能完成任务。对于此项工作使用专用的变量数值交换语句SWAP,可以大大简化程序。
SWAP〈变量名1〉,〈变量名2〉
交换两个类型相同的变量值。
用此语句可将例5-2改写如下:
REM EXAMPLE 2b
A=5:B=8 ˊ变量A,B赋值
PRINT A,B
SWAP A,B ˊ变量A,B交换数值
PRINT A,B
END
数据输出到不同的输出设备,用不同的BASIC语句,如果需要输出到显示器上,所用的语句为PRINT和PRINT USING。如果需要输出到打印机上,所用的语句为LPRINT和LPRINT USING。虽然两个语句面向的输出设备不同,但用法基本一样,因此本教材只介绍PRINT和PRINT USING语句。
PRINT语句在BASIC程序中使用极为频繁,它除了输出程序的运行结果之外,还能对字符串原样照印和输出空行。字符串的原样照印可以用来给输出结果添加说明字符;输出空行可以将多行输出的数据用空行拉开间隔,这样使输出结果清晰明了,便于阅读。
PRINT USING语句是自选格式打印语句,它具有丰富多变的输出格式,由用户自由选定,可使输出数据排列美观整齐,满足用户的各种需要。读者应该逐步地掌握它们。
PRINT[〈输出项1〉][{,丨;}〈输出项2〉]…{,丨;}
例:
PRINT 56,X,A*B
PRINT "X=";X
其中
“,”——输出项之间的分隔符,表示按标准格式输出。
“:”——输出项之间的分隔符,表示按紧凑格式输出。
〈输出项〉——可以是常量、变量、表达式。
把输出项的值显示到屏幕上。输出项是常量、变量、表达式时,输出它们的值;输出项是用双引号括起来的字符串时,原样输出字符串;缺省输出时,输出空行。
(1)一个PRINT语句可以输出一个或多个输出项,当多项输出时,中间用分隔符“,”或“;”分隔。例如:
PRINT 5,9,21
PRINT A;B;A+B
(2)PRINT语句用以原样照印字符串时,字符串要用双引号引起。例如:
PRINT“GOOD!”
(3)当输出项为表达式时,PRINT语句具有计算功能。能先计算后输出。
(4)为了使输出结果清晰,人们对输出格式常有不同要求,常用输出格式可以用输出项之间的分隔符来指定,所用分隔符有逗号“,”和分号“;”两种;还可用专门的函数来指定,专用函数有输出定位函数TAB和输出空格函数SPC。
当PRINT语句输出项之间用逗号分隔时,称为标准格式输出。不同BASIC版本其标准输出格式略有差异,Quick BASIC是将整个80列宽的屏幕分成5个显示区域,每个显示区域的宽度是14个字符,如图5-2所示。

图5-2 显示区域划分
标准格式输出规则举例说明如下:
(1)PRINT语句中用逗号分隔的各输出项按顺序输出在各显示区域上,请看例5-3。
[例5-3] 源程序:
REM EXAMPLE3
PRINT "1","2","3","4","5"
PRINT 10,31,-8,12,-23
PRINT 1,2,3,4,5,6,7,8
END
运行结果:
1 2 3 4 5
10 31 -8 12 -23
1 2 3 4 5
6 7 8
程序说明:
①第2行语句按标准格式输出字符串,用于标注各显示区域的第一列位置。
②第3、4行语句都是按标准格式输出数值量,只是输出项多少不同而已。
③第4行语句中的输出项多于5个时,则第5个输出项后自动换行,再从下一行的第一个显示区域继续输出,依此类推。
④输出字符串时,从该显示区域的第一列开始输出;输出数值量时,各显示区域的第一列留给数值的符号位。如果输出的是0或正数,符号位为空格;如果输出的是负数,则符号位显示“-”号。
(2)PRINT语句中两个逗号之间如果没有输出项,则意味着输出时跳过一显示区域,请看例5-4。
[例5-4] 源程序
REM EXAMPLE 4
PRINT "1","2","3","4","5",
PRINT 15,,12.86,,-20
END
运行结果:
1 2 3 4 5
15 12.86 -20
程序说明:
①第2行语句输出的字符串,用于标注各显示区域位置。
②第3行语句要求跳过第2和第4显示区域,与运行结果是一致的。
(3)PRINT语句中某输出项的长度超过14列时,可以连续占用两个或更多的显示区域。请看例5-5。
[例5-5] 源程序:
REM EXAMPLE 5
PRINT "
PRINT "First",“Second”,"Third"
PRINT "abcdefghijklmnopqrstuvwxyz","ABCDE"
END
运行结果:
1 2 3 4 5 6 7 8
F i r s t S e c o n d T h i r d
a b c d e f g h i j k l m n o p q r s t u v w x y z ABCDE
程序说明:
①第2行语句输出的字符串,用于标注各列列号,便于读者对照各输出项的输出位置。因其长度超过14例,所以占用了后面的显示区域。
②第3行语句按标准格式输出的字符串,用于标注显示区域。
③第4行语句的第1个输出项长度超过14列,输出结果,占用两个显示区域;第2个输出项从第3个显示区域开始。
当PRINT语句输出项之间用分号分隔时,输出数据一个紧挨一个,称为紧凑格式输出。
紧凑格式输出规则举例说明如下:
(1)如果输出的是数值量,则两项之间空一格,而且每个数的前边还留一个符号位;如果输出的是字符串,则两项之间不留空格。请看例5-6。
[例5-6] 源程序:
REM EXAMPLE 6
PRINT "
PRINT 8;0;-10;18;-12.6
PRINT "Q-";"BASIC"
END
运行结果:
1 2 3 4 5 6 7 8
8 0 -10 18 -12.6
Q-BASIC
(2)在一个PRINT语句中,分号、逗号可以混合使用。请看例5-7。
[例5-7] 源程序:
REM EXAMPLE 7
A=5:B=-2
PRINT "First","Second","Third"
PRINT "A=";5,"b=";-2,"A+B=";A+B
END
运行结果:
F i r s t S e c o n d T h i r d
A = 5 B =
程序说明:
①第2行语句是赋值语句,给变量A、B赋初值。省略了语句关键字LET。
②第4行语句中,分号、逗号混合作用。用分号分隔的项按紧凑格输出;用逗号分隔的项按标准格式输出。利用这一功能可以给输出数值添加提示符,便于输出数值的识别。
③第4行语句中的输出项A+B为表达式,运行时是先计算后输出。
(3)PRINT语句输出项的最后,如果没有分隔符,输出后便自动换行。如果加了分隔符,此时不再自动换行。若加了分号,则按紧凑格式接着输出下一个PRINT语句的输出项;若加的是逗号,则按标准格式在下一个显示区域接着输出下一个PRINT语句的输出项。请看例5-8。
[例5-8] 源程序:
REM EXAMPLE 8
PRINT "3*5=";
PRINT 3*5
PRINT "1*1=";1*1,
PRINT "1*2";1*2
END
运行结果:
3*5=15
1*1=1 1*2=2
(4)当PRINT语句中没有任何输出项时,则输出一个空行,相当于增加了一次换行,请看例5-9。
[例5-9] 源程序:
REM EXAMPLE 9
PRINT 1,2,3
PRINT 4,5,6,
PRINT 7.8
END
运行结果:
1 2 3
4 5 6
7 8
程序说明:
在例5-9中,第2行语句输出完数字3之外自换行,因此第3行语句的作用是空一行的作用。而第4行语句最后有逗号,输出完数字6之后不换行,因此第5行语句的作用相当于增加一次换行。
用分隔符指定输出格式虽然比较方便,但在使用中仍显得死板,满足不了用户某些特定输出格式的需要,为此BASIC提供了输出定位函数TAB和输出空格函数SPC,利用它们可以构成特殊的输出格式。
该函数在PRINT语句中使用,它的功能是将光标定位到TAB函数指定的列号上。
函数格式:
TAB(〈算术表达式〉)
表达式的值必须是大于或等于零的整数(如果是小数,则按四舍五入取整),该整数即为指定输出位置的列号。请看例5-10。