Relationele operatoren |
De expressie tussen haakjes na het woord while moet de waarheidswaarde waar (true) of onwaar (false) opleveren. In Java wordt die waarde als boolean gebruikt.
Er zijn een aantal relationele en gelijkheidsoperatoren:
| < | kleiner dan |
| <= | kleiner dan of gelijk |
| >= | groter dan of gelijk |
| > | groter dan |
| == | is gelijk |
| != | is niet gelijk |
Tussen de combinaties <=, >=, == en != mogen geen spaties voorkomen.
De relationele en gelijkheidsoperatoren associëren alle van links naar rechts. Relationele operatoren hebben een hogere prioriteit dan de gelijkheidsoperatoren.
Voorbeelden van relaties en hun waarheidwaarden. Neem aan dat a = 2 en b = 1
| relatie | resultaat |
| a > b | true |
| a >= b | true |
| a <= 1 | false |
| a < 1 | false |
| a == b | false |
| a != 1 | true |
Java kent ook een aantal logische operatoren:
| ! | negatie |
| && | en |
| || | of |
en
|
of
|
inverse
|
De inversie operator ! associeert van rechts naar links en heeft een hogere prioriteit dan de relationele en gelijkheidsoperatoren. De operatoren && en || associëren van links naar rechts en hebben een lagere prioriteit dan de relationele en gelijkheidsoperatoren. && heeft een hogere prioriteit dan ||.
Voorbeelden van logische operaties Neem aan dat a=2, b=1 en c=0
| relatie | waarde |
| !(c == 1) | true |
| a>b && a>c | true |
| a>b && a>c || b<c | false |
| !(a>b && a>c) | true |
| a==2 && b != 1 | false |
Bij de AND operator - && - wordt eerste de linker expressie geëvalueerd. Als deze expressie false oplevert wordt de twee expressie niet verder geëvalueerd. Dit wordt vaak gebruikt om in de linker expressie te controleren of een referentie geldig is en in de rechter expressie wordt mee deze referentie een methode aangeroepen.
if ( s != null) && s.equals("Hallo") {}
De rechter expressie zou een NullPointerException werpen als de s null is, maar door eerst te testen wordt dit voorkomen.
Eenzelfde mechanisme geldt voor de OR operator - || - Als de linker expressie true oplevert dan wordt de rechter expressie niet geëvalueerd.