zoukankan      html  css  js  c++  java
  • Object Pascal 控制语句

    控制语句


    1.常量声明语句
    常量在声明时就被赋予了一个值,在程序执行过程中是不可改变的。

    格式

      const

          常量名 :数据类型 = 值

    下面的例子声明了3 个常量:

    const
        Pi = 3.14159;
        BookID = 362;
        BookName = "Delphi";

    像变量一样,常量也有类型。上文的3 个常量的类型分别是Real 型、整型、字符串型。常量用“=”表示两边的值是相等的。

    为常量指定数据类型,声明方法如下:

    const
       UserID :Integer =1;
      UserName :String ='XIAL l'
      Digits:array[0..9] of Char = ('0','1','2','3','4','5','6','7','8','9');

    2.赋值语句
    赋值语句的形式如下:

    variable:=expression; //变量: = 表达式;

    3.Goto 语句

    Goto 语句可以从程序中的一个地方直接跳转到另一个地方。但是从结构化程序设计的角度来考虑,尽量不要使用Goto 语句。

    Goto 语句的形式如下:

    goto label;

    在使用Goto 语句之前,首先要声明标号。标号声明语句如下:

    label label1,label2,...,labeln;

    ":="为赋值符号,表示将右边的内容赋值给左边的内容,两边的数据类型应保持一致。 

    4.复合语句
    首尾使用Begin 和End 包括起来的一组语句称为复合语句。复合语句可以嵌套使用,也允许有空的复合语句。例如:

    begin
        c:=a;
        a:=b;
        b:=c;
    end;

    5.If 语句
    if...then语句

    if <条件> then
    begin <语句>
    end;

    示例

    if (Edit1.Text='xx') and (Edit2.Text = 'Soft') then

    begin

      ...

    end;

    if...then...else语句

    if <条件> then
        <语句>
    else
        <语句>;

    需要注意的是,上面两个例子中的<语句>可以是单语句或复合语句。If...Then 语句被认为是单语句,在语句结束时只有一个分号(在第1 种情况的Then 引导的子句之后,或在第2 种情况的Else 引导的子句之后)。

    例如下面的代码中Date 为整数类型,判断Date 如果在1 与10 之间显示为“上旬”、11 与20 之间显示为“中旬”、21 与31 之间显示为“下旬”,如果数值不包含在上述范围内则显示“错误的日期”:

    if (Date>=1) and (Date<=10) then
        Writeln(’上旬’)
    else if (Date>=11) and (Date<=20) then
        Writeln(’中旬’)
    else if (date>=21) and (Date<=31) then
        Writeln(’下旬’)
    else
        Writeln(’错误的日期’);

    注意:Else 子句之前,Then 引导的子句之后是不能有分号的。否则将出现语法错误。

    if...then...else if语句
    语法:

    if 条件 then
    begin
       语句
    end
    else if 条件 then
    begin
       语句
    end;

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

    6.Case...of 语句
    If...Then...Else 语句适合选项较少的情况,如果有很多选项的话利用If 语句就比较麻烦,在这种情况下,Case 语句就容易多了。Case 语句的语法如下:

    case <表达式> of
        <数值>:<语句>;
        <数值>:<语句>;
    else
        <语句>;
    end;

    下面这个例子中的S 为Char 类型。当用户输入一个字符后按回车键确认后判断变量S,如果是小写或大写字母将显示“字符”,如果是数字,则显示“数字”,其余的字符就显示“其他”,判断语句如
    下:

    var
        S:Char;
    
    begin
        Readln(S);
        case S of
            'a'..'z', 'A'..'Z':Writeln('字符');
            '0'..'9':Writeln('数字');
        else
            Writeln('其他');
      end;
    end;

    注意:Case 构造中的任何一个语句都可以是单语句或复合语句。如果需要在某种情况下执行多行代码,必须将它们用Begin...End 括起来。 


    7.Repeat...until 语句 
    Repeat 语句会重复执行一行或多行语句,直到某一状态为真。语句以Repeat 开始,以Until 结束,其后跟随被判断的布尔表达式。结构如下: 

    repeat 
        <语句> 
    until <条件表达式> 

    例如: 

        I:=0; 
        repeat 
            I:=I+1; 
            Writeln(IntToStr(I)); 
        until I>5; 

    执行以上的例子时,会显示1-6 的数字。布尔表达式I>5 直到Repeat...Until 程序段结束才会被计算,也就是Repeat 语句至少要执行一次。 

    8.While...do 语句 
    While 语句和Repeat 语句的不同之处在于While 语句的布尔表达式在循环的开始进行判断。如果表达式的结果为真则执行循环,否则退出循环。结构如下: 

    while <条件表达式> do
    begin 
        <语句> 
    end;

    例如:

    I:=0;
    while I<5 do
        begin
            Writeln(IntToStr(I));
            Inc(I);
        end;

    执行以上的例子时会显示0-4 的数字。直到I 不小于5 时才退出循环。

    9.For...do 语句
    For 语句内的程序代码会执行一定的次数。它需要一个循环变量来控制循环次数。循环变量的类型可以是整型、布尔型、字符型、枚举型或子界型。结构如下:

    for <条件表达式> do
    begin
        <语句>
    end;

    递增循环

      for 循环变量:=初值 to 终值 do

      begin

        循环体语句

      end;

    递减循环

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

      begin

        循环体语句

      end;

    下面的例子将显示1-5 的数字:

    for I:=1 to 5 do
    begin
        Writeln(IntToStr(I));
    end;

    而下面的例子将显示5-1 的数字:

    for I:=5 downto 1 do
    begin
        Writeln(IntToStr(I));
    end;

    10.Break 语句
    在各循环中调用Break,可以使得程序的执行流程立即跳到循环的结尾。例如程序执行5 次后跳出循环,代码如下:

    for I:=1 to 10 do
    begin
        if I=5 then
        Break;
    end;

    11.Continue 语句
    如果想跳过循环中部分代码,并开始下一次循环,可以调用Continue 语句。下面的例子在执行第3 次循环时,Continue 后的代码不执行而继续下一次的循环:

    for I:=1 to 5 do
    begin
        if i=3 then
        Continue;    
        Writeln(IntToStr(I));
    end;
    for I:=1 to 5 do
    begin
        if i=3 then
        Continue;    
        Writeln(IntToStr(I));
    end;

    12.With 语句
    使用记录类型的变量时,可以通过With 语句指定一些语句,这些都是针对某一个变量来说的,这样可以简化代码的输入量。With 语句的形式如下:

    with object do statement

    例如:

    type
        TEmployee=record
            Name : string[20];
            YearHired:2000..2010;
            Salary: Double;
            Position: string[20];
    end;
    
    var
        Employee:TEmployee;
    
    begin
        with Employee do
            begin
            Name :=’Wang’;
            YearHired :=2005;
            Salary :=10000;
            Position := ’ Technic Department’;
    end;

    13. 其他语句

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

      ...

      if Edit1.Text='' then

      begin

        Exit;

      end;

      ...



    Halt语句
      Halt语句用于强制终止程序的执行,并返回到操作系统。

    procedure TForm1.N21Click(Sender:TObject);
    begin
        if MessageDlg('真的要退出系统吗?',mtinformation,[mbyes,mbno],0)=mbyes then
        begin
        Halt;
        end;
    end;

    RunError语句
      RunError语句用于终止程序运行并产生一个运行期错误,错误号最高值为255。

    procedure TForm.Button1Click(Sender:TObject);
    begin
         RunError(200);
    end;

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

    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;
  • 相关阅读:
    杂项
    hdu 2094
    hdu acm 1004
    android 重装sdk或者系统的时模拟器出现can open ****
    使用Java模拟操作系统高优先级算法
    各种语法解释及用法
    枚举与结构
    闭包
    socket
    异常
  • 原文地址:https://www.cnblogs.com/ivantang/p/3815949.html
Copyright © 2011-2022 走看看