# IF…ENDIF > [HTML Version](if_endif_ctrl_struct.htm) __ **IF \{THEN\}** \{ELSEIF \{ELSE **ENDIF** **** This newer form of block-structured IF statement was originally introduced in BASIC_plus_, and later extended by A-Shell build 1125 to support the elseif clause. Advantages over the original if statement include: • No need to use colons to separate statements or ampersands to continue on to additional lines. • For conditions that divide more than two mutually exclusive ways, you can use as many optional _elseif_ clauses as you need. • Ability to nest statements (including other IF...ENDIF or other control structures within the clauses.) **Compatability:** requires /X:2 or /RC. The A-Shell implementation is compatible with the BASIC_plus_ version at the source code level, except for the ELSEIF clause which is an A-Shell extension. **Example** if COST < 10 then PAY'METHOD = PM\_CASH PETTY'CASH -= COST elseif COST < 100 then PAY'METHOD = PM\_CHECK CHECKING'ACCOUNT -= COST elseif COST < 1000 then PAY'METHOD = PM\_CREDIT else CALL BUY'LOTTERY'TICKET if TICKET = WINNER then CALL GET'AN'ACCOUNTANT() else CALL ROB'BANK() endif endif **Comments** The compiler determines whether an if statement is of the original or new (block-structured form) by whether there is a statement following the condition prior to the end of the logical line. It is possible to insert old-style if statements into the body of new-style if..endif statements, but this goes against most tenets of style. Once you get more than a couple of elseif clauses, you may find the conceptually-equivalent switch statement to be a better match. Beware: elseif (one word) and else if (two words) are not equivalent\! The former marks the beginning of a/another mutually exclusive conditional clause that ends with either the next elseif, else, or endif. The latter marks the beginning of an _else_ clause, and within that clause, starts a new if statement. **Subtopics** - [ELSEIF Clauses](elseifclauses.htm.md)