实际操作中,如果变量的值事先不知道,并且需经常发生改变,使用赋值语句显然不再适宜。此时,需要一个灵活的提供数据的语句,能在程序运行时,从键盘输入变量的值,输入语句就是在程序运行时由用户给变量提供数据的一种输入动作,它有两种格式:
格式1 read(变量名表);
格式2 readln(<变量名表>);

执行该语句时,程序进入等待状态,等待用户从键盘输入数据,输入的数据将依次赋给变量名表中的变量,而后程序继续执行其他语句。

说明:
1、变量名表中的变量可以是一个,也可以是多个,多个时要以逗号分隔
2、从键盘输入数据时,数据个数不能少于变量个数,否则系统仍处于等待状态。当数据多于变量个数时,对于readln语句便将其忽略;对于read语句,要么将其忽略(后面没有输入语句时),要么被下一个输入语句读入(后面有输入语句时)
3、输入数值型数据时,数据间用空格或回车键分隔,最后一定要按回车键;输入字符型数据时,数据间不能用空格或回车分隔,必须连续输入4、从键盘输入的数据必须是常量,且与变量名表中的变量类型要一致
5、readln后可以没有变量名表,( )中内容是可选项,此时该语句只相当于读入了“回车”符

read与readln的关系可以表示为:
readln(x);等价于read(x);readln;

例1:将1、2、3分别赋给3个整型变量i、j、k,若使用read(i,j,k);语句,给出可能的输入数据格式。

根据前面说明可知,正确的输入格式有以下几种:(其中↙表示回车)
(1)
1 2 3↙

(2)
1 2↙
3↙

(3)
1↙
2 3↙

(4)
1↙
2↙
3↙

例2:使用read(ch1,ch2,ch3);将'd','o','s'三个字符分别赋给ch1、ch2、ch3三个字符变量,如何输入数据?
方法只有一种:连续输入dos↙
其它输入形式都是错误的,如:d o s↙

注意:整形和实型变量可以共用一个输入语句,而字符型变量不能与它们共用一个输入句。

例3:观察read语句的使用。
read(a,b,c);
read(i,j,k);

输入数据:
1 2 3 4 5↙
6 7 8 9 0↙

读入结果为:
1 2 3 4 5
a b c  i  j
6 7 8 9 0
k           (多余数被忽略)

例4:观察readln语句的使用。
readln(a,b,c);
readln(i,j,k);

输入数据:
1 2 3 4 5↙
6 7 8 9 0↙

读入结果为:
1 2 3 4 5
a b c       (多余数被忽略)
6 7 8 9 0
i   j  k       (多余数被忽略)

例5:设有下列语句:

read(a,b,c);

readln(d,e);

readln;

readln(f,g);

其中,所有变量均为整型,再设输入的数据如下:

1 2↙

3 4 5 6 7 8↙

9 10↙

11↙

12 13↙

请问每个变量的值是多少?

 

zerojudge:

d583