brackets { ... } PL/I: DO ... END Python: uses indent level (see Off-side rule) Haskell: either indent level or curly brackets can be used, and they can be freely mixed Lua: uses do ... end Final keyword: Ada, ALGOL 68, Modula-2, Fortran 77, Mythryl, Visual Basic. The forms of the final keyword vary: Ada: final keyword is end + space + initial keyword e.g., if ... end if, loop ... end loop ALGOL 68, Mythryl: initial keyword spelled backwards e.g., if ... fi, case ... esac Fortran 77: final keyword is END + initial keyword e.g., IF ... ENDIF, DO ... ENDDO Modula-2: same final keyword END for everything Visual Basic: every control structure has its own keyword. If ... End If; For ... Next; Do ... Loop; While ... Wend Choice If-then-(else) statements Conditional expressions and conditional constructs are features of a programming language which perform different computations or actions depending on whether a programmer-specified boolean condition evaluates to true or false. IF..GOTO. A form found in unstructured languages, mimicking a typical machine code instruction, would jump to (GOTO) a label or line number when the condition was met. IF..THEN..(ENDIF). Rather than being restricted to a jump, any simple statement, or nested block, could follow the THEN key keyword. This a structured form. IF..THEN..ELSE..(ENDIF). As above, but with a second action to be performed if the condition is false. This is one of the most common forms, with many variations. Some require a terminal ENDIF, others do not. C and related languages do not require a terminal keyword, or a 'then', but do require parentheses around the condition. Conditional statements can be and often are nested inside other conditional statements. Some languages allow ELSE and IF to be combined into ELSEIF, avoiding the need to have a series of ENDIF or other final statements at the end of a compound statement. Less common variations include: Some languages, such as Fortran, have a three-way or arithmetic if, testing whether a numeric value is positive, negative or zero. Some languages have a functional form of an if statement, for instance Lisp's cond. Some languages have an operator form of an if statement, such as C's ternary operator. Perl supplements a C-style if with when and unless. Smalltalk uses ifTrue and ifFalse messages to implement conditionals, rather than any fundamental language construct. Case and switch statements Switch statements (or case statements,