Re: Evaluating Exceptions, Try Except and Try Finally

From: Skybuck Flying (nospam_at_hotmail.com)
Date: 04/08/04


Date: Thu, 8 Apr 2004 19:35:30 +0200


> If Statements There are two forms of if statement: if...then and the
> if...then...else. The syntax of an if...then statement is if expression
then
> statement where expression returns a Boolean value. If expression is True,
> then statement is executed; otherwise it is not. For example,
> if J <> 0 then Result := I / J;The syntax of an if...then...else statement
> is if expression then statement1 else statement2 where expression returns
a
> Boolean value. If expression is True, then statement1 is executed;
otherwise
> statement2 is executed. For example,
> if J = 0 then
> Exit
> else
> Result := I / J;The then and else clauses contain one statement each,
but
> it can be a structured statement. For example,
> if J <> o then
> begin
> Result := I / J;
> Count := Count + 1;
> end
> else if Count = Last then
> Done := True
> else
> Exit;
> Notice that there is never a semicolon between the then clause
> and the word else. You can place a semicolon after an entire if statement
to
> separate it from the next statement in its block, but the then and else
> clauses require nothing more than a space or carriage return between them.
> Placing a semicolon immediately before else (in an if statement) is a
common
> programming error. A special difficulty arises in connection with nested
if
> statements. The problem arises because some if statements have else
clauses
> while others do not, but the syntax for the two kinds of statement is
> otherwise the same. In a series of nested conditionals where there are
fewer
> else clauses than if statements, it may not seem clear which else clauses
> are bound to which ifs. Consider a statement of the form if expression1
then
> if expression2 then statement1 else statement2; There would appear to be
two
> ways to parse this: if expression1 then [ if expression2 then statement1
> else statement2 ]; if expression1 then [ if expression2 then statement1 ]
> else statement2; The compiler always parses in the first way. That is, in
> real code, the statement
> if ... { expression1} then
> if ... {expression2} then
> ... {statement1}
> else
> ... {statement2}is equivalent to
> if ... {expression1} then
> begin
> if ... {expression2} then
> ... {statement1}
> else
> ... {statement2}
> end;The rule is that nested conditionals are parsed starting from the
> innermost conditional, with each else bound to the nearest available if on
> its left. To force the compiler to read our example in the second way, you
> would have to write it explicitly as
> if ... {expression1} then
> begin
> if ... {expression2} then
> ... {statement1}
> end
> end
> else

That's why I always code if then else statement like this:

if blablablalba then
begin

    if blabla then
    begin

    end else
    begin

    end;

end else
begin

end;

Just use:

begin

end;

Everywhere !!!!

Lol...

Is that so damn hard ?!

If I had to change delphi I would make it impossible to do it any
differently.

That solves a whole range of stupid nasty mistakes a beginner could make :D

Skybuck.



Relevant Pages

  • Re: The problem with Delphi 8
    ... The syntax of an if...then...else statement is if expression then statement1 ... Notice that there is never a semicolon between the then clause and the word ... from the next statement in its block, but the then and else clauses require ... The rule is that nested conditionals are parsed starting from the innermost ...
    (borland.public.delphi.non-technical)
  • Re: SAT and NP-Completeness
    ... is proven to be NP-complete? ... The problem of boolean satisfiability is to find if there exists an assignment of values to a generic boolean expression such that the expression is true. ... all such operators are equivalent to a set of binary clauses; ...
    (sci.math)