![]() |
Variablen-Abfrage in Integerbereich
Guten Abend!
Habe folgendes Problem: Ich möchte eine Integer-Abfrage machen die wie folgt aussieht:
Delphi-Quellcode:
Die erste Abfrage bereitet keine Probleme, bei der zweiten meckert aber Delphi mit "Constant expression violates subrange bounds", also sprenge ich die Grenzen mit dieser Abfrage.
var zahl:Integer;
... //zahl wird mehrfach modifiziert if zahl in [0..50] then ... if zahl in [350..400] then ... Meine Frage: wie umschiffe ich dieses Problem? Muss ich wirklich jede Zahl so umständlich abfragen:
Delphi-Quellcode:
oder gibt es da eine schönere Lösung?
if (zahl=350)or(zahl=351)or(zahl=352)or...
Danke schon einmal |
Re: Variablen-Abfrage in Integerbereich
Wie wärs mit:
Delphi-Quellcode:
if (zahl>=350) and (Zahl<=400) then
|
Re: Variablen-Abfrage in Integerbereich
Okay, die Antwort war jetzt fies! ;-)
So einfach kann es manchmal sein... Danke Gibt es noch eine andere Lösung, die mein Gesuch mit einer komplizierter aussehenden Lösung belohnt? Kann man evt. einen Zahlenbereich definieren, den man mit der Variable abgleichen kann oder so? Ansonsten reicht das schon auch. Danke |
Re: Variablen-Abfrage in Integerbereich
Statt
Delphi-Quellcode:
kann man das mit case lösen:
var zahl:Integer;
... //zahl wird mehrfach modifiziert if zahl in [0..50] then ... if zahl in [350..400] then ...
Delphi-Quellcode:
MfG
var zahl:Integer;
... case zahl of 0..50: ... 350..450: ... //usw. end; Binärbaum |
Re: Variablen-Abfrage in Integerbereich
Das habe ich auch schon überlegt, aber da stoße ich mit folgender Überlegung an die Grenzen, nämlich, wenn ich zwei Variablen abfragen möchte: (Koordinaten zB)
Delphi-Quellcode:
Da müsste dann wohl eine doppelt-verschachtelte Abfrage her. So was wie:
var X,Y: integer;
if (X in [0..10]) and (Y[0..10]) then ...
Delphi-Quellcode:
Mit höheren Werten müsste ich dann wie oben vorgeschlagen wie folgt abfragen:
case X of
0..10: if Y in[0..10] then ... end;
Delphi-Quellcode:
if (X>=0)and(X<=400)and(Y>=0)an(Y<=400) then ...
|
Re: Variablen-Abfrage in Integerbereich
Zitat:
Delphi-Quellcode:
Wie du siehst, gibt es verschiedene Möglichkeiten den Wertebereich zu überprüfen. Entscheide dich für den, den du am besten Lesen kannst.
case X of
0..10: case Y of 0..10: ShowMessage('X und Y haben den richtigen Wert'); end; end; |
Re: Variablen-Abfrage in Integerbereich
Alles klar, Dank an alle.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz