Lazarus流程控制

1. IF语句
//单语句
if 表达式 then
语句;

//多语句
if 表达式 then
begin
语句1;
语句2
end;

//带else语句
if 表达式 then
为真
else
为假;

//嵌套
if 条件1 then
语句1
else
if 条件1 then
语句2
else
语句3;

//else只会与最的if匹配
if 条件1 then
if 条件2 then
语句2
else
语句1;

//可以使用空语句
if 条件1 then
if 条件2 then
语句2
else
else
语句1;

2. CASE语句,《注意:case语句中的列表只能使用常量,不能使用变量》
//if转case
if (b = 1) or (b = 7) or (b = 2037) or (b = 5) then
语句1
else
语句2;
/转化后如下:
case b of
1,7,2037,5: 语句1;
else 语句2
end;

//case语句格式,else可选,它代表其它情况,值在列表中可以列出多个,逗号分开,
case 选择器 of
列表1: 语句1;
列表2: 语句2;
...
列表n: 语句n;
else 语句;
end;

3.FOR..DO循环
//已知循环次数
for 索引 := 开始(小) to 结束(大) do
语句;
//注意:
1. 在使用for-to-do时,初始值必须小于结束值,要不然循环不会执行!
2. 更不能在循环体内修改索引值,否则会造成编译错误。
3. 也不能更改开始与结束值(因为,并不会按着你想的那样循环)。

//递减式循环,可以使用for-downto-do:
for 索引 := 开始(大) downto 结束(小) do
语句;
在Pascal中,for循环自增量(步长)为1。

4.WHILE..DO循环:可以在循环体内修改表达式的值,满足后退出循环,否则进入死循环
//先判断后循环,语法:
while 逻辑表达式 do
语句;
//例子
a := 5;
while a < 6 do begin writeln (a); a := a + 1 end; 5.REPEAT..UNTIL循环 //先循环,后判断,语法如下: repeat 语句1; 语句 until 逻辑表达式; //例子 sum := 0; count := 0; repeat count := count + 1; sum := sum + count until (count >= 100);
writeln('sum=', sum);
//循环体有前后标识,不需要再加begin..end,循环体修改表达式的值,满足后退出循环,否则进入死循环

6.FOR..IN循环(Free Pascal 在 2.4.2版中被引入),这是在集合上迭代。适用于字符串、数组、集合和任何其它实现所需迭代器的自定义集合。在空集合上循环不做任何事情。计数器变量不能在循环内修改。
//字符串循环
procedure StringLoop(S: String);
var
C: Char;
begin
for C in S do
DoSomething(C);
end;
//数组循环
procedure ArrayLoop(A: Array of Byte);
var
B: Byte;
begin
for B in A do
DoSomething(B);
end;

未整理完.............................................
未整理完.............................................
未整理完.............................................

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注