this
if ( payments per year <> 12 ) then begin
Result := 1;
exit;
end;
if ( rate = 0 ) then begin
Result := 2;
exit;
end;
is better than this ?
if ( payments per year <> 12 ) then begin
Result := 1
Else if ( rate = 0 ) then
Result := 2;
or even this ?
begin
If not CheckPayments (Result) Then
CheckRates(Result);
end;
Well, i guess that´s particular, i am just not a huge fan o EXITing code
in any
unpredictable place.
On Thu, 17 Apr 2008 13:10:09 -0300, Alan Krause <[EMAIL PROTECTED]>
wrote:
mm wrote:
Using "Exit" is not of a bad programming practice. Suppose one has to
write a big procedure, say 150 lines of code. Suppose now that, instead
of writing
if X = 0 then Exit;
at the beginning of the procedure, one writes
if X <> 0 then
begin
...
Does a reader immediately see that, when X = 0, the procedure does
nothing? No. They have to read all the code, to search for the "end"
that closes the "begin" in order to get sure there are no instructions
after this "end". In such a case, with the "Exit" instruction the
procedure is much easier to read.
I have to agree, and can give an even better example. In the software I
write, many times there are several conditions which need to be checked.
If any of these conditions apply, then an appropriate result code should
be set and the rest of the routine should not be executed. An example:
if ( payments per year <> 12 ) then begin
Result := 1;
exit;
end;
if ( rate = 0 ) then begin
Result := 2;
exit;
end;
... add 10 more checks
' ok - we have made it through all the validation checks, so now lets do
some actual work
' relevant code goes here
The above is *so* much clearer than implementing 12 nested levels of
if..then..else.
Alan
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
--
Rodrigo Palhano
---------------------------------
Equipe SpeedCASE
http://www.speedcase.com.br
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal