HOWTO · JavaScript
Überprüfen Sie in JavaScript, ob die Zahl zwischen zwei Werten liegt
In diesem Artikel erfahren Sie, wie Sie in JavaScript überprüfen, ob eine Zahl zwischen zwei Werten liegt.
Auf dieser Seite
Um in JavaScript zu prüfen, ob eine Zahl zwischen zwei Werten liegt, vergleichen Sie sie mit beiden Grenzen und verknüpfen die Vergleiche mit einem logischen UND (&&). Zum Beispiel prüft number > lower && number < upper, ob die Zahl strikt innerhalb des Bereichs liegt. Diese Variante schließt Werte aus, die einer der Grenzen entsprechen. Soll der Bereich beide Endpunkte einschließen, verwenden Sie stattdessen >= und <=.
Prüfen, ob eine Zahl in JavaScript zwischen zwei Werten liegt
Eine Bereichsprüfung kombiniert zwei Vergleiche: Die Zahl muss größer als die untere und kleiner als die obere Grenze sein. Der Operator && macht die gesamte Bedingung nur dann wahr, wenn beide Vergleiche wahr sind. Ist einer der Vergleiche falsch, liegt die Zahl außerhalb des strikt abgegrenzten Bereichs.
Bei den Grenzen 10 und 50 besteht beispielsweise der Wert 25 die strikte Prüfung. Die Werte 10 und 50 bestehen sie nicht, weil > und < Gleichheit ausschließen. Um die Endpunkte einzuschließen, schreiben Sie number >= lower && number <= upper. Wählen Sie die Operatoren passend zu den Anforderungen Ihres Programms: „zwischen“ legt nicht fest, ob die Endpunkte dazugehören.
JavaScript-Vergleichsoperatoren liefern bei numerischen Operanden boolesche Ergebnisse. Weitere Informationen finden Sie in der MDN-Dokumentation zu Vergleichsoperatoren und logischen Operatoren. Die folgenden Beispiele setzen voraus, dass der Wert und beide Grenzen Zahlen sind und die untere Grenze kleiner als die obere ist.
Mit einer if-Anweisung einen Zahlenbereich prüfen
Ein benanntes Prädikat macht die Bereichsregel wiederverwendbar. Dieses Beispiel verwendet eine if-Anweisung, um zwischen zwei Meldungen zu wählen. Führen Sie das Beispiel aus:
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
function isBetween(number, lower, upper) {
return number > lower && number < upper;
}
const value = 25;
if (isBetween(value, 10, 50)) {
console.log(`${value} is between 10 and 50`);
} else {
console.log(`${value} is outside the range`);
}
Die Funktion gibt einen booleschen Wert zurück und kann deshalb überall dort verwendet werden, wo eine Bedingung erwartet wird. Beim Beispielwert lautet der erste Vergleich 25 > 10 und der zweite 25 < 50; beide sind wahr, daher wird der if-Zweig ausgeführt. Ist einer der Vergleiche falsch, wird der else-Zweig ausgeführt. Die Blockform eignet sich, wenn ein Zweig mehrere Anweisungen benötigt oder wenn klar benannte Zweige die Logik verständlicher machen.
Mit dem ternären Operator einen Zahlenbereich prüfen
Für eine kurze Auswahl zwischen zwei Werten lässt sich dasselbe Prädikat in einem ternären Ausdruck verwenden. Die Bedingung steht vor ?; ist sie wahr, wird der Ausdruck zwischen ? und : ausgewählt, andernfalls der Ausdruck nach :.
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
function isBetween(number, lower, upper) {
return number > lower && number < upper;
}
const value = 25;
const message = isBetween(value, 10, 50)
? `${value} is between 10 and 50`
: `${value} is outside the range`;
console.log(message);
Das Verhalten an den Grenzen ist dasselbe wie im if-Beispiel, da beide isBetween verwenden. Ein ternärer Ausdruck liefert einen Wert, der einer Variablen zugewiesen oder an einen anderen Ausdruck übergeben werden kann. Halten Sie beide Zweige kurz: Ein langer, verschachtelter ternärer Ausdruck erschwert es, die Bedingung und ihre Ergebnisse zu überblicken.
Zwischen if und dem ternären Operator wählen
Verwenden Sie if, wenn ein Zweig mehrere Aktionen ausführt, komplexere Logik enthält oder von einem expliziten Kontrollfluss profitiert. Ein ternärer Ausdruck eignet sich, wenn Sie zwischen zwei knappen Werten wählen und das Ergebnis gut lesbar bleibt. Beide Formen beruhen auf demselben Bereichsprädikat. Ändern Sie dessen Vergleiche, ändert sich daher an beiden Stellen die Regel für die Endpunkte.
Achten Sie auf die vorgesehene Reihenfolge der Grenzen. Falls eine Funktion die Grenzen in beliebiger Reihenfolge erhalten kann, bringen Sie sie vor der Prüfung in die richtige Reihenfolge, indem Sie beispielsweise den kleineren Wert lower und den größeren upper zuweisen. Stellen Sie außerdem sicher, dass die Eingaben Zahlen sind, bevor Sie sie vergleichen: Die Vergleichsoperatoren von JavaScript können Werte anderer Typen umwandeln, was möglicherweise nicht der Validierungsregel Ihrer Anwendung entspricht. Bei Nutzereingaben sollten Sie den Wert und die Grenzen zuerst parsen und validieren und danach das Bereichsprädikat anwenden.