Thema: IF-Anweisung

Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: IF-Anweisung

  Alt 25. Nov 2011, 17:30
Also wenn man solche Bereiche einteilen will, ohne dass man etwas vergisst, dann ist folgendes Vorgehen ratsam:

Delphi-Quellcode:
function Group( const Value : Extended ) : Integer;
begin

  // man kann die oberen und unteren Grenzen im Vorfeld behandeln
  if ( Value < 0 ) or ( Value >= 360 ) then
  begin
    // alternativ eine Exception werfen lassen
    raise Exception.CreateFmt( 'Wert %f ungültig. (0° <= Wert < 360°)', [ Value ] );
    // oder einfach einen Result zurückgeben, bei dem man weiß, da stimmt was nicht
    Result := -1;
    Exit;
  end;

  // oder wie hier beim Winkel kann man ja auch diesen umrechnen
  while ( Value < 0 ) do
    Value := Value + 360;

  while ( Value >= 360 ) do
    Value := Value - 360;

  // *** ab hier geht der Vergleich los ***

  // obere Grenze abfangen
  if ( Value >= 360 ) then Result := -1

  else if ( Value >= 270 ) then Result := 4 // 270 <= Value < 360
  else if ( Value >= 180 ) then Result := 3 // 180 <= Value < 270
  else if ( Value >= 90 ) then Result := 2 // 90 <= Value < 180
  else if ( Value >= 0 ) then Result := 1 // 0 <= Value < 90

  // untere Grenze abfangen
  else Result := -1;

end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat