您的当前位置:首页正文

Delphi控制语句

2024-02-04 来源:好走旅游网
Pascal中的一些基本常识

一、基本字符 赋值运算符: := 二、变量

使用变量前一定要先定义它。

常量: const

例如:const a=10.5; b= -a; c='student';

变量: var

例如: s,t:string; m:real; d:integer;

三、赋值语句

<变量标识符>:=<表达式>

比如: a:=b; c:=a1+3-25

Delphi控制语句

1、顺序语句

顺序结构是一种线性结构,这种结构是按从上到下的顺序依次执行各语句。

(1)赋值语句

赋值语句是Delph7中最基本的一种语句,用于对变量赋值或设置组件的属性值。 语法:

变量名:=表达式; 对象.属性:=表达式;

(2)输入语句

InputBox函数和InputQuery函数用于显示一个带有编辑组件的消息对话框,该提示框中有一个文本输入框和两个命令按钮,为用户提供输入文本的功能。

a) InputBox函数

( InputBox返回值是字符串,也就是输入的字符串 )

语法:function InputBox(const ACaption,APrompt,ADefault:String):String; ACaption,消息对话框的标题。

APrompt,消息对话框的提示信息。

ADefault,消息对话框首次出现时编辑框中显示的信息。 例:

Procedure TForm1,ButtonClick(Sender:TObject); var S:String; begin

S:=inputbox('查询','请输入查询内容:',''); if S=Edit1.Text then begin

ShowMessage('查询内容为:'+Edit1.Text); end//此处不能多加分号 Else

ShowMessage('没有查询到此消息'); end;

b) InputQuery函数

显示一个带有编辑组件的对话框,为用户提供输入文本的功能,并判断用户是否按下了Ok按钮。

( InputQuery返回值为是否点了OK 输入的字符串放在了变量Value中 ) 语法:function InputQuery(const ACaption,APrompt:string;var Value:string):Boolean; ACaption,消息对话框的标题。 APrompt,消息对话框的提示信息。

Value,对话框首次出现在编辑框中显示的字符串,并得到用户在消息对话框中输入的字符串。

例:

procedure TForm1.Button1Click(Sender: TObject); var s:string; begin

//点击了OK按钮后,则

if InputQuery('标题','提示字符',s) then begin

if s<>'' then //如果输入不为空则 showmessage(s); end; end;

(3)输出语句

MessageDlg函数可以将信息以对话框的形式输出并显示。 语

function

MessageDlg(const

Msg:string;DlgType:TMsgDlgType;

Buttons:TMesgDlgButtons;HelpCtx:Longint):Integer;

Msg,显示消息的内容。 Dlgtype,指定消息对话框的类型。 Buttons,指定消息对话框显示的按钮 HelpCtx,指定应显示帮助标题的正文ID

DlgType参数的取值:

mtInfromation,显示带感叹号图标的信息框。 mtWarnging,显示一个带有提醒符号图标的信息框。 mtCustom,无显示图标。

mtError,显示一个带有停止符号图标的信息框。 mtConfirmation,显示一个带有问好图标的信息框。 例:

MessageDlg('MessageDlg输出信息提示框',mtinformation,[mbok,mbyes],0);

2、条件判断语句 (1)使用if...then语句 语法: if 条件 then begin 语句 end;

if...then...else语句 语法: if 条件 then 语句1 else 语句2

注意在使用if...then...else语句时,else前面的一条语句后面不能加分号;,否则将出现语法错误。例:

Procedure TForm1.Button1Click(Sender:TObject); begin

if Edit1.Text='' then begin

ShowMessage('输入不能为空'); end//此处不能多加分号。 else

ShowMessage('您输入的内容为:'+Edit1.Text); end;

if...then...else if语句 语法: if 条件 then begin 语句 end

else if 条件 then begin 语句 end;

同样else if前面的一条语句后面不能加分号;。

(2)case...of条件分支语句

case...of语句提供了一个可读性更好的多重if嵌套的解决方案。 语法:

case 条件表达式 of 条件1:语句1; ....

条件n:语句n; else

其他语句; end; 例:

procedure TForm1.Button1Click(Sender:TObject); var

C:Integer; N:String; begin C:=2; case C of

0:N:='条件值为1'; 1:N:='条件值为2';

2:N:='条件值为3'; else N:='没有对应的条件'; end;

Edit1.Text:=N; end;

3、循环结构

(1)Repeat...until语句

Repeate...Unitl循环语句是直到型循环语句,该语句的操作是先执行一次循环,只要Repeat后的表达式为False。程序就继续执行,直到该表达式为真(True)才结束循环。

语法: Repeat 循环体 until

布尔表达式 例:

procedure TForm1.ButtonClick(Sender:TObject); var i:Integer; begin i:=0; Repeat inc(i); i:=i+1; until (i>=10);

Edit1.Text:=IntToStr(i); end;

(2)while...do语句

while...do语句为当型循环语句,该语句的执行过程是先判断while后的布尔表达,然后再执行。while...do语句是当条件表达式的值为True时,执行其中的循环体。

语法:

while 条件表达式 do begin 循环体 end;

例:求1累加到100的和

procedure TForm1.ButtonClick(Sender:TObject); var

i,j:Integer; begin i:=0; j:=0;

while i<=100 do begin j:=j+i; i:=i+1; end;

Edit1.Text:=IntToStr(j); end;

(3)for...do语句

for...do是经常能够用到的循环语句,该语句不同于while...do语句,它可以确定循环次数。另外,在for...do语句中使用to和downto关键字,可以实现递增循环和递减循环。循环中默认的步长在for...to...do情况下为1,for...downto...do情况下为-1。

递增循环的语法:

for 循环变量:=初值 to 終值 do begin

循环体语句 end;

递减循环的语法:

for 循环变量:=初值 downto 终值 do begin

循环体语句 end;

4、其他控制语句 (1)Break语句

Break语句用于强制跳出循环,当一个循环没有达到循环结束的条件并要结束循环时,可以使用Break语句。

(2)Continue语句

Continue语句是强制结束本次循环,即跳过当前的循环后,继续执行下一次循环操作。

(3)Exit语句

Exit语句主要用于退出当前的代码块,如果该段代码块是主程序,那么Exit语句将导致程序终止,如果程序块是被调用的模块,则跳到上一层程序继续执行。

(4)Halt语句

Halt语句用于强制终止程序的执行,并返回到操作系统。 procedure TForm1.N21Click(Sender:TObject); begin

if MessageDlg('真的要退出系统吗?',mtinformation,[mbyes,mbno],0)=mbyes then begin Halt; end; end;

(5)RunError语句

RunError语句用于终止程序运行并产生一个运行期错误,错误号最高值为255。 procedure TForm.Button1Click(Sender:TObject); begin

RunError(200); end;

(6)Abort语句

Abort语句用于中止程序的运行,产生一个特殊的\"无记载异常\",此异常与其他异常相同,只是不显示错误信息。

(7)goto语句

goto语句使用起来十分方便,可以从程序的一个地方直接跳到另一个地方,尽量少用goto语句。

procedure TForm1.Button1Click(Sender:TObject); Label AA;//在此声明一个标签。 var

sum,i:Integer; begin sum:=0; i:=0;

AA://使用标签; sum:=sum+i; i:=i+1; if i<=100 then

goto AA;//如果i不满足条件,则直接跳转到使用标签的位置。

Edit1.Text:=IntToStr(sum); end;

因篇幅问题不能全部显示,请点此查看更多更全内容