• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Prüfen ob Zahl NICHT innerhalb eines Zahlenbereiches ist

Haxy123

New member
Hi!

Ich möchte folgendes prüfen - intial bekomme ich eine Zahl geliefert z.B. 6. Diese Zahl soll gegengeprüft werden, ob sie nicht zwischen zwei Zahlen liegt z.B. 3 - 8.
Wenn die Zahl nicht innerhalb dieses Breiches liegt - soll eine Ausgabe erflogen.

Mein Ansatz:

PHP:
if (start(3) <= 6 <= end(8)) { 
 // keine Aktion
} else {
   var Ausgabe;
}

Ist das ne saubere Lösung?

Danke
 
Ich würde dann eher if (zahl < 3 || zahl > 8) abfragen
Kommt jetzt drauf an, ob die Begrenzungen gelten. Dann ggf. if (zahl <= 3 || zahl >= 8)
 
Dann musst du das Ganze allerdings umdrehen, und im if die Aktion ausführen, und nicht im else:
Code:
if (zahl <= 3 || zahl >= 8) {
  //Aktion ausführen
}
else { 
    //Zahl liegt innerhalb des Intervalls, Aktion nicht ausführen
}
So schließt du auch gleich noch andere Fehler aus, z.B., dass "zahl" gar keine Zahl ist...
 
Zuletzt bearbeitet:
Nur falsch herum, Julian! Er will ja auf "nicht" in dem Bereich prüfen.

- - - Aktualisiert - - -

Jetzt hast es korrigiert und kommst auf das selbe wie ich :)
 
Nur falsch herum, Julian! Er will ja auf "nicht" in dem Bereich prüfen.
Ja, stimmt. Ich wollte eigentlich darauf hinweisen, dass er dann im if- statt im else-Zweig die Aktion ausführen muss. Hab's oben ausgebessert, danke für den Hinweis!

@Haxy123: Übrigens, solltest du so eine Prüfung öfter durchführen, kannst du dir eine kleine eigene Funktion dafür erstellen:

Code:
Object.defineProperty(Number.prototype, "NotInInt", { enumerable: false, value: function(intStart, intEnd) {
  var num = this;
  if(num <= intStart || num >= intEnd){
    return true;
  }
  else{
    return false;
  }
} });


//Beispiel:
var check = 6;
if(check.NotInInt(3, 8)){
 alert(check + " liegt außerhalb des Intervalls.");
}
else{
  alert("FEHLER\n\n" + check + " liegt innerhalb des Intervalls!");
}
 
Ist das ne saubere Lösung?
Das ist gar keine Lösung, da es nicht das macht, was du gerne hättest:
Code:
alert(4 <= 10 <= 5);

Du musst das auf jeden Fall so machen, wie mikdoe und Julian vorschlagen.
Ich würde dann eher
ist ein wenig zu vorsichtig formuliert.

- - - Aktualisiert - - -

@Julian: ich würde da ja eher eine positive Funktion machen, da man sonst schnell mit doppelter Verneinung arbeiten muss, was verwirrend sein kann.
Code:
Object.defineProperty(
	Number.prototype,
	 "inRange",
	 {
	 	enumerable: false,
	 	value: function(rangeStart, rangeEnd) {
			return this >= rangeStart && this <= rangeEnd;
		}
	}
);
 
ist ein wenig zu vorsichtig formuliert.
Ich bin auch vorsichtig geworden. Es gibt einfach zu viele Dinge in der IT, die sich viel zu schnell verändern, gerade im HTML/CSS/JS Bereich lernt man doch quasi täglich dazu, obwohl man schon seit den Anfängen von HTML1 damit arbeitet. Daher bin ich etwas vorsichtiger geworden mit der Bewertung von Dingen, selbst wenn ich mich sicher fühle :)
 
@Julian: ich würde da ja eher eine positive Funktion machen, da man sonst schnell mit doppelter Verneinung arbeiten muss, was verwirrend sein kann.
Ja, stimmt auf jeden Fall. "Problem": die Prüfung ist nicht 100% zuverlässig, da auch dann "false" geliefert wird, wenn es sich beispielsweise nicht um eine Zahl handelt.

- - - Aktualisiert - - -

Quatsch, die Funktion ist ja auf Number.Prototype bezogen. Muss also eine Zahl sein...
 
Hab das nicht als Vorwurf aufgefasst, Korbinian. Aber manchmal denke ich auch, ich bin sicher und dann kommt plötzlich doch wieder was, was ich noch nie gesehen habe oder mich zumindest nicht dran erinnere. Man wird alt und es scheint so, als ob mit abnehmender Merk- und Denkleistung die Weiterentwicklung um einen herum zunimmt. Das ist manchmal beängstigend......
 
Zurück
Oben