楼主: sun5008
6905 5

[有偿编程] %MACRO内,怎么实现GOTO,求解 [推广有奖]

  • 0关注
  • 0粉丝

已卖:993份资源

博士生

45%

还不是VIP/贵宾

-

威望
0
论坛币
96 个
通用积分
2.1000
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
6239 点
帖子
140
精华
0
在线时间
270 小时
注册时间
2006-3-9
最后登录
2025-11-25

楼主
sun5008 发表于 2011-10-19 11:11:24 |AI写论文
20论坛币
大家好!
  我急着要解决这个问题,就是在宏内实现GOTO的功能,
一下举例,如果循环碰到i=j,那么就能跳到xx,也就是跳过了这次循环,
请问怎么解决???
这段程序是不通的
%macro ii;
%do i=1 %to 10;
%do j=1 %to 10;
        %if &i=&j %then goto xx;
        %put x=&i  y=&j;
xx:
%end;
%end;
%mend;
%ii;



关键词:Macro acr CRO Mac Then 程序

沙发
playmore 发表于 2011-10-19 11:28:06
  1. %macro ii;
  2. %do i=1 %to 10;
  3. %do j=1 %to 10;
  4.         %if &i=&j %then %goto xx;
  5.         %put x=&i  y=&j;
  6. %xx:
  7. %end;
  8. %end;
  9. %mend;
  10. %ii;
复制代码
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

藤椅
seekts 发表于 2011-10-19 12:02:36
像c语言这类程序一般不提倡使用goto,用goto能实现的功能,经过适当的设计可以不用goto实现

楼主的这个程序,使用continue就可以实现,即在   %if &i=&j %then goto xx; 后加入continue

sas应该也有类似功能的语句

板凳
webgu 发表于 2011-10-19 23:21:36
很遗憾,好像SAS里并没有%continue,%break 等语句。
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

报纸
tj0412ymy 发表于 2011-10-20 10:04:27
用%do;%end;不也可以解决这个问题吗?PLS try this.
  1. %macro ii;
  2. %do i=1 %to 10;
  3. %do j=1 %to 10;
  4. %if &i=&j %then %do;
  5. %put 'Goto xx';
  6. %end;
  7. %else %do;
  8. %put x=&i y=&j;
  9. %end;
  10. %end;
  11. %end;
  12. %mend;
  13. %ii;
复制代码

对SAS和统计方面感兴趣的朋友,请加SAS学习和认证讨论群:169157207。欢迎在群上讨论!

地板
yhchenxy 发表于 2011-10-21 08:07:51
Replace "GOTO" with "leave".

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 22:09