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

Solved
Super Contributor
Posts: 398

# %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
Super User
Posts: 6,785

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

All Replies
Solution
‎05-25-2017 09:46 PM
Super User
Posts: 6,785

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

PROC Star
Posts: 2,370

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

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.