🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Rhodochrosite | Level 12

## %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;

1 ACCEPTED SOLUTION

Accepted Solutions
PROC Star

## 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.

2 REPLIES 2
PROC Star

## 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.

Tourmaline | Level 20

## 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``````

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