这一节描述基本语法中的流程语句: 条件语句 IF语句、 选择语句 Case语句、循环语句 while/repeat/for、以及continue、break语句,还有终止程序
{ Delphi语句
1、if语句
2、case语句
3、循环语句
4、用于循环的 continue 和 break 语句
5、程序终止或中止功能 Exit、Halt、Terminate方法
}
program Statement;
{$APPTYPE CONSOLE}
uses
SysUtils,
StrUtils, //引用字符串操作函数
Windows; //引用系统函数
type
charSet = set of ansichar;
var
//注意Delphi2010里面String变量相当于WideString
dirPath:string;
dirAnsiPath:ansistring;
//定义一个整型变量
strVar:string;
nVar:integer;
//定义一个ansichar变量
chVar:ansichar;
charSetVar:charSet;
procedure showExit();
begin
WriteLn('Go into procedure showExit');
Exit();
//由于调用Exit()方法,因此会退出当前函数的执行,下面的语句不会被执行
WriteLn('Go out procedure showExit()');
end;
procedure showHalt();
begin
{
1、Halt可以返回一个错误码,如果不带参数则不能有 ( ) 函数调用符
2、如果用 ( ) 函数调用符,则必须带参数
}
Halt(2);
end;
procedure showTerminate();
begin
//Terminate() 方法用于终止 GUI程序的执行,这里就不说明啦
end;
begin
//通过系统API函数获取系统路径
GetWindowsDirectory(PWideChar(dirPath),256);
dirAnsiPath := dirPath;
dirAnsiPath := 'Window have install in' + dirAnsiPath;
WriteLn(dirAnsiPath);
{ IF语句
1、IF语句的第一种形式
2、如果有else分支,则then后面的 begin/end 语句块 end后面不能有分号
3、如果有else分支,则then后面的语句必须为语句块 begin/end
}
if dirPath = 'C:\windows' then
begin
WriteLn('Windows have install in default partion.');
end
else
begin
WriteLn('Windows have install in default partion.');
end;
{ IF语句
1、不带esle子句的if语句
}
if True then
WriteLn('This is simple if statement');
{
if .... then
...
else if ... then
...
esle if ... then
...
else
...
}
//通过函数 Read 读取数字
Read(nVar);
if nVar = 1 then
begin
WriteLn('status 1');
end
else if nVar = 2 then
begin
WriteLn('status 2');
end
else if nVar = 3 then
begin
WriteLn('status 3');
end
else
begin
WriteLn('other status');
end;
{ case 语句
}
case nVar of
1:
WriteLn('*');
2:
WriteLn('**');
3:
WriteLn('***');
4:
WriteLn('****');
else
WriteLn('Input is not 1..4');
end;
{ 循环语句
1、while循环
2、repeat循环
3、for循环
}
nVar := 0;
{
1、while循环语句
}
while not ( nVar = 10 ) do //注意 not的优先级比 关闭比较符的优先级要高
begin
Inc(nVar);
WriteLn(nVar);
end;
{ Repet
1、repeat循环语句,类似于C语言中的 Do...while,就是循环体至少会执行一次
}
repeat
WriteLn(nVar);
Dec(nVar);
until nVar = 0;
{ for循环语句
1、for有两种形式,
2、语法格式1, 计数器向上增加
for 计数器 := 初始值 to 终值 do
循环体
3、语法格式2, 计数器向下减小
for 计数器 := 初始值 downto 终值 do
循环体
}
for nVar := 3 to 10 do
begin
WriteLn(nVar);
end;
for nVar := 10 downto 5 do
begin
WriteLn('This is downto for loop.');
WriteLn(nVar);
end;
{ 基于集合的for循环语句
1、针对集合中的元素进行循环
2、for I in set do 循环,中的set必须是已经初始化的集合变量
不能使集合类型,或者是未初始化的集合变量
3、这个格式的for循环还可以变量数组、记录、字符串、类和接口
}
//初始化集合变量
charSetVar := ['a'..'z'];
for chVar in charSetVar do
begin
WriteLn(chVar);
end;
{ continue语句
1、continue语句的用法和 C语言中的用法一样,用于中止本次循环
}
for nVar := 0 to 100 do
begin
if nVar <= 90 then
begin
Continue;
end
else
begin
WriteLn(nVar);
end;
end;
{ break语句
1、break语句与 C 语言中个的用法一样
}
while nVar > 70 do
begin
Dec(nVar);
if nVar < 76 then
begin
break;
end
else
WriteLn(nVar);
end;
{ Exit 方法
1、Exit用于退出当前正在执行的程序块,但是不会退出整个程序的执行
2、当Exit用于主程序的程序块的时候就是退出程序
3、在try....finally...调用 Exit