<pre style="white-space:pre-wrap;color:rgb(49,49,49);font-size:1rem;word-spacing:1px;background-color:rgb(255,255,255)">><i style="font-size:1rem"> Why require that each "if-then" has an "else"</i></pre><pre style="white-space:pre-wrap;color:rgb(49,49,49);word-spacing:1px;background-color:rgb(255,255,255)"><br></pre><pre style="white-space:pre-wrap;color:rgb(49,49,49);word-spacing:1px;background-color:rgb(255,255,255)"><div dir="auto" style="font-size:1rem">Never mind the semantics, this is a piece of syntactic history.</div><div dir="auto"><br></div><div dir="auto" style="font-size:1rem">ALGOL 60 allowed omitted "else". That gave ambiguity:</div><div dir="auto"><br></div><div dir="auto" style="font-size:1rem">    if p</div><div dir="auto" style="font-size:1rem">       then if q </div><div dir="auto" style="font-size:1rem">               then ...</div><div dir="auto" style="font-size:1rem">           ...</div><div dir="auto" style="font-size:1rem">           else ...</div><div dir="auto"><br></div><div dir="auto" style="font-size:1rem">There was no layout rule. Does the "else" match to the outer "if-then" or the inner?</div><div dir="auto"><br></div><div dir="auto" style="font-size:1rem">BCPL ~1965 had two constructs</div><div dir="auto"><br></div><div dir="auto" style="font-size:1rem">    if p</div><div dir="auto" style="font-size:1rem">       then test q</div><div dir="auto" style="font-size:1rem">                 then ...</div><div dir="auto" style="font-size:1rem">           ...</div><div dir="auto" style="font-size:1rem">           else ...</div><div dir="auto"><br></div><div dir="auto" style="font-size:1rem">"if-then" has no "else". If you want an "else" use "test-then-else".</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto" style="font-size:1rem">AntC</div></pre>