%If &&M&I = 0 %then %GOTO out?

Accepted Solution Solved
Reply
Super Contributor
Posts: 274
Accepted Solution

%If &&M&I = 0 %then %GOTO out?

Hello:

 

Could someone explain the macro statement below?   Thanks.

 

 

%If &&M&I = 0 %then %GOTO out;

statement;

%out: %end;

 


Accepted Solutions
Solution
‎05-25-2017 09:46 PM
Respected Advisor
Posts: 4,978

Re: %If &&M&I = 0 %then %GOTO out?

The result depends on the value of the macro variable &i.  When &i is 1, the program examines the macro variable &M1 to see if it is zero.  When &i is 2, the program examines the macro variable &M2 to see if it is zero.  Etc.

 

When a zero is found, the program skips over the statement(s) in the middle.

View solution in original post


All Replies
Solution
‎05-25-2017 09:46 PM
Respected Advisor
Posts: 4,978

Re: %If &&M&I = 0 %then %GOTO out?

The result depends on the value of the macro variable &i.  When &i is 1, the program examines the macro variable &M1 to see if it is zero.  When &i is 2, the program examines the macro variable &M2 to see if it is zero.  Etc.

 

When a zero is found, the program skips over the statement(s) in the middle.

Trusted Advisor
Posts: 1,510

Re: %If &&M&I = 0 %then %GOTO out?

Run this to help you make sense of the logic.

Here the value of i=1, so &&m&i becomes &m1, and the value of m1 is 0.

 



option symbolgen nomlogic;

%macro test;
  %let i =1;
  %let m1=0;

  %put Print this line;

  %if &&m&i = 0 %then %goto out;

  %put This line is skipped;;

  %out:
 
  %put This is the end;

%mend;

%test

 

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 106 views
  • 2 likes
  • 3 in conversation