If Bedingungen kombinieren?

berndoa

Top Contributor
Hallo,
ich habe mal ein für meine Verhältnisse simples Problem/Frage:
Ich lese vom bildschirm die Farbe (Datentyp color) eines bestimmten Pixels ein.
Dann zerlege ich es in den rot, grün und blau Wert.

Nun will ich immer dann, wenn das Pixel sich innerhalb eines gewissen Farbbereich befindet, was tun.
Falls es aussehralb liegt, will ich was Anderes tun.

Aktuell sieht die Bedingung bei mir so aus:

Java:
if((r>=180&&r<=200)&&(g>=180&&g<=200)&&(b>=180&&b<=200)){...}
else{...}
Was sich nicht schön liest .

Da habe ich mich gefragt ob man das nicht einfacher schreiben kann.

Mathematisch würde man es einfach schreiben als
180<=r,g,b<=200

Aber ich bin mir unklar ob java solche Doppelungleichungen erlaubt,
geschweigedenn das kombinieren der Bedingungen dreier Variabeln.

Im Prinzip selbe Frage wäre es wie ich ein Ungleichungssystem wie
20<=r<=40
b>80
c<55

oder Vergleichbares irgendwie sinnvoll in eine if Bedingung packen kann ohne 20 Ungleichungen mit && verbinden zu müssen? :)
 

httpdigest

Top Contributor
Naja, das hier:
Code:
20<=r<=40
b>80
c<55
Ist ja quasi in Java:
Java:
if (20 <= r && r <= 40
  && b > 80
  && c < 50) {
}

Ich behelfe mir da auch immer gerne mit Aufteilen in einzelne Zeilen und manuellem Eindrücken des Codes, damit's übersichtlicher aussieht.

Und für 180<=r,g,b<=200 kannst du dir ja eine Hilfsmethode schreiben:
Java:
private static boolean between(int min, int value, int max) {
  return min <= value && value <= max;
}

Dann ist's:
Java:
if (between(180, r, 200) &&
    between(180, g, 200) &&
    between(180, b, 200)) {
  ..
}
 
Y

yfons123

Gast
warum machst du dir nicht eine tool klasse ?
Java:
public class RangeTester{
    private int upperBorder;
    private int lowerBorder;
    public void RangeTester(int upperBorder ,int lowerBorder){
        this.upperBorder = upperBorder;
        this.lowerBorder = lowerBorder;
    }
    public bool isInRange(int val){
        return (val >=lowerBorder&& upperBorder<=200;
    }
}
if(tester.isInRange(r) && tester.isInRange(g) && tester.isInRange(b))
geht bestimmt noch kürzer aber java hat noch nie viel auf kürze gegeben
 

Robert Zenz

Top Contributor
Um den Gedanken von @httpdigest weirerzufuehren, ich finde es immer gut wenn man die Hauptlogik selbst so aussagekraeftig und lesbar hat wie es moeglich ist. Damit bietet sich das kapseln von komplexeren Bedingungen in Methoden mit guten Namen an:

Java:
if((r>=180&&r<=200)&&(g>=180&&g<=200)&&(b>=180&&b<=200)){...}
else{...}

Java:
private boolean isMediumGray(int red, int green, int blue) {
    return red >= 180 && red <= 200
        && green >= 180 && green <= 200
        && blue >= 180 && blue <= 200
}

if (isMediumGray(r, g, b)) {
    // ...
} else {
    // ...
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Audio Datei unter Bedingungen ausführen Java Basics - Anfänger-Themen 19
T Mehrere if bedingungen ohne & Java Basics - Anfänger-Themen 2
B Semaphoren in Abhängigkeit an Bedingungen richtig setzen Java Basics - Anfänger-Themen 3
U Kann man bei Java gleich mehrere Bedingungen prüfen in der If, aber in einem "Satz"? Java Basics - Anfänger-Themen 1
B Collections.sort mit zwei Bedingungen? Java Basics - Anfänger-Themen 4
D Wert des Arrays unter Bedingungen ändern Java Basics - Anfänger-Themen 1
A Bedingungen für Parameterwerte Java Basics - Anfänger-Themen 7
J Unit Testing mit vielen Bedingungen - Best Practice? Java Basics - Anfänger-Themen 9
S mehrere If Bedingungen Java Basics - Anfänger-Themen 5
U Schleife mit mehreren Bedingungen ? Java Basics - Anfänger-Themen 29
F Klassen Eigene Exception Bedingungen festlegen Java Basics - Anfänger-Themen 2
E Bedingungen abkürzen Java Basics - Anfänger-Themen 13
S Erste Schritte Begrüßung mit if-Bedingungen Java Basics - Anfänger-Themen 7
S Fragen zu Ausdrücken&Bedingungen Java Basics - Anfänger-Themen 5
G While schleife mit 2 Bedingungen geht nicht! Java Basics - Anfänger-Themen 15
H Bedingungen miteinander verknüpfen Java Basics - Anfänger-Themen 2
J if Bedingungen verknüpfen Java Basics - Anfänger-Themen 8
K Bedingungen else Java Basics - Anfänger-Themen 7
M Variablen Switch Bedingungen Java Basics - Anfänger-Themen 12
W for Schleife mit zwei bedingungen ? Java Basics - Anfänger-Themen 6
F Bedingungen mit Abfragen verknüpfen Java Basics - Anfänger-Themen 7
W Was tun die Operatoren ? und : (Bedingungen) Java Basics - Anfänger-Themen 15
T Scanner für char-wert/ if mit 2 bedingungen? Java Basics - Anfänger-Themen 5
Q If-Abfrage mit mehreren Bedingungen Java Basics - Anfänger-Themen 6
reno Bedingungen in Konfigurationsdatei Java Basics - Anfänger-Themen 2
K Bedingungen mit "und" trennen ? Java Basics - Anfänger-Themen 2
J Performance Vergleich von if-Abfragen mit mehreren Bedingungen Java Basics - Anfänger-Themen 9
M Kann man Bedingungen auch ohne Schleifen prüfen? Java Basics - Anfänger-Themen 5
C switch-case mit bedingungen? Java Basics - Anfänger-Themen 5
NightmareVirus 2 Abbruch Bedingungen in einer for-schleife Java Basics - Anfänger-Themen 2
G Schleifen mit mehreren Bedingungen Java Basics - Anfänger-Themen 4
G Mehrere If Bedingungen Java Basics - Anfänger-Themen 11
A Mehrere if Bedingungen untereinander? Java Basics - Anfänger-Themen 4
J if-Bedingungen in C und Java Java Basics - Anfänger-Themen 4
G if-Abfrage mit zwei Bedingungen Java Basics - Anfänger-Themen 6
C zwei Bedingungen in einer if Anweisung Java Basics - Anfänger-Themen 1
I JPA / Hibernate "Predicate" kombinieren in der gleichen Query Java Basics - Anfänger-Themen 1
I Java Klassen "Graphics" und "MouseEvent" kombinieren Java Basics - Anfänger-Themen 7
A Arrays kombinieren (länge eines Arrays kann 0 sein) Java Basics - Anfänger-Themen 6
C Zwei Integer Arrays "kombinieren" Java Basics - Anfänger-Themen 10
G 2 Listen kombinieren und nach abc sortieren Java Basics - Anfänger-Themen 9
D jtable renderer und sortieren kombinieren Java Basics - Anfänger-Themen 3
N String kombinieren - Methode Java Basics - Anfänger-Themen 5
B Erste Schritte Strings kombinieren Java Basics - Anfänger-Themen 10
J Switch mit if anweisung kombinieren Java Basics - Anfänger-Themen 2
D Kann man eine for-Schleife mit switch kombinieren? Java Basics - Anfänger-Themen 8
S Print Methode zweier "Classes" kombinieren Java Basics - Anfänger-Themen 2
S Variablen kombinieren Java Basics - Anfänger-Themen 5
S Rechtecke zu moeglichst groesseren Rechtecken kombinieren? Java Basics - Anfänger-Themen 7
T 2 Klassen kombinieren Java Basics - Anfänger-Themen 6
F 4 STrings in allen Kombinationen miteinander kombinieren Java Basics - Anfänger-Themen 2
D Algorithmus, beliebige Anzahl doubles kombinieren Java Basics - Anfänger-Themen 7
D Brauche Hilfe: Funktion zum Kombinieren von Werten Java Basics - Anfänger-Themen 5
S Botton und Image kombinieren Java Basics - Anfänger-Themen 3
G zwei if's und Ausgabe kombinieren Java Basics - Anfänger-Themen 3
G LayoutManager kombinieren Java Basics - Anfänger-Themen 2
H Thread mit AWT-Oberfläche kombinieren Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben