pascal中关于begin的问题

来源:百度知道 编辑:UC知道 时间:2024/07/02 11:10:25
本人刚开始接触pascal语言2天
有一个疑问.

1. for i:=1 to n-1 do
for j:= 1 to n-i do
if a[j]>a[i] then
begin
……
这里的 begin 放的位置和下面的begin 放的位置为什么不一样

2. for i:=1 to n do
begin
for j:=1 to n do
……

begin
end
这两个关键字之间的语句表示复合语句,在编译时当作一条语句理解

for i:=1 to n-1 do
for j:= 1 to n-i do
if a[j]>a[i] then
begin
....
end

表示
for i:=1 to n-1 do
for j:= 1 to n-i do
if a[j]>a[i] then
执行begin end间的语句

for i:=1 to n do
begin
for j:=1 to n do
……
end

表示
for i:=1 to n do
执行包括for j:=1 to n do 的,begin end 之间的 语句

begin经常在then或do的后面出现
then begin 或do begin
一直到end之间的程序表示只要符合then或do前面的条件才执行,或循环时进行多重循环


1. for i:=1 to n-1 do
for j:= 1 to n-i do
if a[j]>a[i] then
begin
的这个do仅代表它要循环for j:= 1 to n-i do

for循环只控制它下面的一个语句(不是一行)
(如: n:=0;
for i:=1 to 3 do
n:=n+1;
n:=n+3;
最后n=6而不是12)

你可以试一下
for i:=1 to 3 do
for j:=1 to 4 do
begin
write('a');
writeln;
end;

for i:=1 t