结构化编程
控制结构语法 + 数据结构
1.顺序结构
2.选择结构
IF … THEN / ELSE
IF expression THEN
DO;
statements ;
END;
ELSE
DO;
statements ;
END;
SELECT / WHEN
3.循环结构
DO 循环 (标准计数型)
do 计数变量=初值 to 终值 by 步长; /*步长默认为1,也可以取负值*/
循环体语句;
end;
e.g.
do i=2 to 10 by 2;
do i=10 to 2 by –2;
do x=3.6 to 4.8 by 0.05;
do n=1, 5, 10, 30, 60;
do n=1, 5 to 10 , 20 , 30 ;
do month='JAN', 'FEB', 'MAR';
do z=k to n/10 ;
DO WHILE 循环 (当型)
先判断,再执行循环
do while (循环继续条件);
循环体语句;
end;
DO UNTIL 循环 (直到型)
先循环,再判断;循环体至少执行一次
do until (循环退出条件);
循环体语句;
end;
LEAVE;
退出当前层循环(相当于C语言中的break;)
CONTINUE;
继续下一轮循环(当前轮循环余下的立刻结束)
C / R / Python → for / while 循环
C语言支持整数计数型循环,SAS还支持小数计数型循环、无规律数字循环、文本循环等
计数变量命名规则:I-N规则(i, j, k, l, m, n)
- 加法的实现
/* pi/4 = 1-1/3+1/5-1/7+..., estimate pi */
/* 计数型循环 */
data;
s=0; flag=1; /*符号变量,变号器*/
do n=1 to 10000;
s=s+flag/(2*n-1);
flag=-flag; /*每次变号*/
end;
pi=4*s;