SAS三种循环循环

在一般编程中, 语句是按顺序执行的, 即, 程序的第一条语句首先执行, 然后第二条执行, 依此类推。但是, 在某些情况下, 我们需要执行特定次数或重复执行同一组语句。在这种情况下, 我们需要使用循环。在SAS中, 我们可以通过使用Do Statement(也称为Do Loop)来使用循环。SAS编程中使用了三个基本循环:DO循环、DO UNTIL循环、DO WHILE循环。现在, 让我们了解SAS编程中这些循环的动作:
DO循环
这是DO循环的最简单形式。DO循环的操作是无条件的, 这意味着如果我们指示该循环执行一条语句50次, 那么它将无限制地执行该语句50次(除非在处理过程中发生错误)。让我们举个例子来了解它的工作原理。
例:
在此, 我们以增加银行账户余额为例, 并在接下来的4笔Rs.1000卢比之后计算账户余额。
假设初始账户余额为9000, 则可以在以下代码中分配”余额= 9000″。
DATA account;
  balance = 9000;
  do i = 1 to 4;
    balance + 1000;
  end;
run;
PROC print DATA=account;
run;
在此代码中, 我们将语句” balance + 1000″执行4次, 这样它将无条件地执行多达4次。
DO UNTIL循环
第二种类型的循环是DO UNTIL循环。我们可以使用此循环继续执行语句, 直到条件变为真为止。让我们通过一个例子来理解:
DATA until;
  loan = 30000;
  payments = 0;
  do until (loan = 0);
    loan = loan - 1000;
    payments = payments + 1;
  end;
run;
proc print data=until;
run;
根据以上输出, 付款的计数一直持续到贷款变为零为止。
DO WHILE循环
循环的第三种类型是DO WHILE循环。当指定条件保持为真时, 我们可以使用此循环继续执行。让我们通过一个例子来理解:
在此示例中, 我们将使用DO WHILE循环来计算贷款的还款次数。在这里, 我们使用与上述示例相同的数据。
Data while;
  loan = 30000;
  payments = 0;
  do while(loan > 0);
    loan = loan - 1000;
    payments = payments + 1;
  end;
run;
proc print data=while;
run;
根据以上输出, 付款的计数一直持续到贷款大于零或条件成立为止。
下面是对3种循环语句的比较:
迭代DO语句基于索引变量值重复执行DO语句和END语句之间的SAS语句。使用迭代DO语句较容易控制循环次数。
DO UNTIL语句重复执行在DO循环中的语句,直到条件为真。DO UNTIL语句在每次DO循环迭代结束后检查条件。
DO WHILE语句在条件为真时重复执行DO循环中的语句。DOWHILE语句在每次DO循环迭代开始前检查条件。

请前往:http://www.mark-to-win.com/TeacherV2.html?id=166