Võrdlemine
Sissejuhatus
Võrdlusoperaatorid võimaldavad võrrelda kahte väärtust omavahel.
Kõik võrdlusoperaatorid tagastavad boolean tüüpi tulemuse ehk kas tõene (true) või väär (false).
Võrdlusoperaatorid
Võrdub/ei võrdu
== operaator kontrollib kahe väärtuse 1:1 vastavust:
int a = 5;
int b = 5;
int c = 3;
boolean result1 = (a == b); // true
boolean result2 = (a == c); // false
// Also used in if-statements
if (a == b) {
System.out.println("a and b are equal");
}
Primitiivsete tüüpide puhul kasutage ==:
int x = 5;
int y = 5;
boolean result = (x == y); // true - ÕIGE
Objektide (nt String) puhul kasutage .equals() meetodit:
String s1 = new String("tere");
String s2 = new String("tere");
boolean wrong = (s1 == s2); // Võrdleb viiteid, mitte sisu
boolean correct = s1.equals(s2); // true - võrdleb sisu
Täpsemalt saab selle kohta lugeda siit.
!= operaatoriga saab kontrollida, kas kaks väärtust on erinevad:
int a = 5;
int b = 3;
boolean result = (a != b); // true
if (a != b) {
System.out.println("a and b differ");
}
Suurem/väiksem kui
> operaatoriga kontrollitakse, kas vasakpoolne väärtus on suurem kui parempoolne:
int a = 10;
int b = 5;
boolean result = (a > b); // true
if (a > b) {
System.out.println("a is larger than b");
}
< operaatoriga kontrollitakse, kas vasakpoolne väärtus on väiksem kui parempoolne:
int a = 3;
int b = 5;
boolean result = (a < b); // true
if (a < b) {
System.out.println("a smaller than b");
}
Suurem/väiksem või võrdne
>= operaator kontrollib, kas vasakpoolne väärtus on suurem või võrdne parempoolsega:
int a = 5;
int b = 5;
int c = 3;
boolean result1 = (a >= b); // true (both are equal)
boolean result2 = (a >= c); // true (a is larger)
boolean result3 = (c >= a); // false
<= operaator kontrollib, kas vasakpoolne väärtus on väiksem või võrdne parempoolsega:
int a = 3;
int b = 5;
int c = 5;
boolean result1 = (a <= b); // true (a is smaller)
boolean result2 = (b <= c); // true (both are equal)
boolean result3 = (b <= a); // false
Erinevate tüüpide võrdlemine
Numbrilised tüübid
Java teisendab automaatselt väiksema tüübi suuremaks enne võrdlemist:
int a = 5;
double b = 5.0;
boolean result = (a == b); // true (a gets converted into double)
int x = 5;
double y = 5.1;
boolean result2 = (x < y); // true
Sümbolid (char)
Sümboleid võrreldakse nende Unicode väärtuste järgi:
char a = 'A'; // Unicode value 65
char b = 'B'; // Unicode value 66
boolean result1 = (a < b); // true (65 < 66)
boolean result2 = (a == 'A'); // true
// Can be useful in checking for alphabetical order of letters
char letter = 'M';
if (letter >= 'A' && letter <= 'Z') {
System.out.println("Suur täht");
}
Boolean väärtused
Tõeväärtuseid saab võrrelda ainult == ja != kaudu:
boolean a = true;
boolean b = false;
boolean result1 = (a == b); // false
boolean result2 = (a != b); // true
// NB! This is bad style
if (a == true) {
// ...
}
// Correct style
if (a) { // HEA
// ...
}
Võrdlusahelad
Javas ei saa võrdlusi ahelda nagu matemaatikas (või nagu Python'is):
int x = 5;
// In math we usually write: 3 < x < 10
// Java doesn't operate like that:
if (3 < x < 10) { // Compilation error
// ...
}
// Everything has to be a separate comparisson
if (3 < x && x < 10) {
// ...
}