Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#7

AW: case...of für mehrere Variablen?

  Alt 1. Jul 2012, 12:46
Hab noch was:
Delphi-Quellcode:
Function ValueRange (Value, Min, Max : Integer) : TRangeResult;
Begin
  if Value<Min then
    Result := rrTooSmall
  else if Value>Max then
    Result := rrTooBig
  else
    Result = rrJustRight
End;

Begin
  RangeOfA := ValueRange (A,1,4);
  RangeOfB := ValueRange (B,1,9);

 case RangeOfA of
   rrTooSmall:
     case RangeOfB Of
       rrTooSmall :
         Anweisung1
       rrJustRight:
         Anweisung2
       rrTooBig:
         Anweisung3;
     end;
   rrJustRight :
     case RangeOfB Of
       rrTooSmall:
         ???
       rrJustRight:
         Anweisung4
       rrTooBig:
         Anweisung5;
     end;
   rrTooBig :
     case RangeOfB Of
       rrTooSmall:
         Anweisung6;
       rrJustRight:
         ???
       rrTooBig:
         ???;
     end;
end;
Das entspricht einer Entscheidungsmatrix.

Aber man sieht auch hier: Etwas Ordnung geschaffen und die Lücken werden sichtbar. Es sind nicht alle Fälle abgedeckt...

Weiterer Vorteil: Die Bereichsprüfung ist nur an einer Stelle (DRY) und somit leicht änderbar.

Wie man an die Sache herangeht, hängt natürlich mit dem konkreten Problem zusammen.
  Mit Zitat antworten Zitat