楼主: warrenzhang
4317 4

[原创博文] 如何动态给定一个do循环的步长 [推广有奖]

  • 0关注
  • 3粉丝

副教授

66%

还不是VIP/贵宾

-

威望
0
论坛币
4189 个
通用积分
2.3005
学术水平
64 点
热心指数
76 点
信用等级
54 点
经验
701 点
帖子
890
精华
0
在线时间
686 小时
注册时间
2007-3-9
最后登录
2011-8-4

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
比如我有如下宏:

%macro abc(x);
%do i = 1 %to 20 by 4;
...
%end;
%mend abc;

现在想利用宏参数动态地修改循环步长(原来是4),请问应该用什么语法?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:do循环 Macro ABC End MEN 动态 如何

本帖被以下文库推荐

沙发
sushe1527 发表于 2010-5-6 13:09:05 |只看作者 |坛友微信交流群
%let t=4;
%macro abc(x);
%do i = 1 %to 20 by &t;
...
%end;
%mend abc;

使用道具

藤椅
crackman 发表于 2010-5-6 13:24:26 |只看作者 |坛友微信交流群
%macro abc(x,t);
%do i = 1 %to 20 by &t;
...
%end;
%mend abc;

不知道楼主是不是这个意思
还是循环一遍之后又改变步长呢?
你可以考虑加一个外循环,让步长自动增长

使用道具

板凳
jingju11 发表于 2010-5-7 04:27:15 |只看作者 |坛友微信交流群
1# warrenzhang

It is impossible because %BY-defined increment is evaluated prior to the first iteration of the loop. Thus, you cannot change it as the loop iterates.
Of course you can do like that:

  1. %let step = 4;
  2. ...%by &step;
复制代码


Here the step has to be constant.

使用道具

报纸
warrenzhang 发表于 2010-5-7 11:38:45 |只看作者 |坛友微信交流群
长知识了。谢谢楼上几位!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-1 01:34