TSL语言基础 > TSL语言基础 > 流程控制语句 > 循环语句

FOR    

  • for 语句用来描述已知重复次数的循环结构。for 语句有三种形式:
    (1) for 控制变量:=初值 to 终值 do 语句;
    (2) for 控制变量:=初值 downto 终值 do 语句;
    (3) for 控制变量1,控制变量2 IN 数组 Do 语句;
    第一种形式的for 语句是递增循环。
    首先将初值赋给控制变量,接着判断控制变量的值是否小于或等于终值,若是,则执行循环体,在执行了循环体之后,自动将控制变量的值该为它的后继值,并重新判断是否小于或等于终值。当控制变量的值大于终值时,退出for循环,执行for语句之后的语句。

    第二种形式的for 语句是递减循环。
    首先将初值赋给控制变量,接着判断控制变量的值是否大于或等于终值,若是,则执行循环体,在执行了循环体之后,自动将控制变量的值该为它的前趋值,并重新判断是否大于或等于终值。当控制变量的值小于终值时,退出for循环,执行for语句之后的语句。
    注意:for 语句中的初值、终值、控制变量的数据都必须是整数类数据。当初值和终值确定后,重复的次数就确定不变了,并且控制变量在重复语句内不能施加任何赋值操作。
    例6:计算1+2+3+……+99+100的值
    Function PlusFor();
    begin
      sum:=0;
      for i:=1 to 100 do
        sum:=sum+i;
      return sum;
    end;

    第三种形式的for语句是直接对数组进行遍历

    对数组中的每一行(第一维)进行遍历,当前行的下标存放在第一个控制变量中,该行对应的值存放在第二个控制变量中。从第一行开始,将行标与当前行的值分别赋值给控制变量1与控制变量2后,执行循环体,在执行了循环体之后,自动将2个控制变量的值赋值为下一行的下标及该行值,当遍历完最后一行之后,退出for循环,执行for语句之后的语句。
    For … IN 遍历的用法说明
    语法:For i,v IN TArray DO 语句;说明:对数据的遍历。
    其中,i:控制变量1,获取当前循环中数组第一维的下标值v:控制变量2,对应当前循环中第一维度的值
    TArray:需要被遍历的数组。
    注1:二维及多维数组可当作一维处理,此时的控制变量2的值则可能是一个数组。
    注2:在此过程中,不可更改一维数组的值,也不可对该数组中的任何元素进行赋值操作,对在循环过程中不可对循环数组TArray进行变更操作。
    适应场景:对于非数字下标的数组,处理比较方便,且效率高
    范例一:一维数组的应用
    data:=array('a':1,'b':5,'c':3,'d':-2);
    s:=0;
    for i,v in data do
     s+=v;
    return s;
    //返回实数7

    范例二:二维数组的应用
    data:=rand(array('a','b','c'),array('AA','BB','CC','DD'));
    s:=0;
    t:=1;
    for i,v in data do //data是二维数组,所以第一维中,v的值是一个一维数组,即当前行。
      for j,v1 in v do
      begin
       s+=v1;
       t*=v1;
      end
    return array(s,t);

    返回:array(12,1)