Sobes.tech
Junior

Kuidas saab võrrelda primitiivseid andmetüüpe?

sobes.tech AI

Vastus AI-lt

Java-s primitiivsed andmetüübid võrreldakse nende väärtuse järgi, kasutades võrdlusoperaatoreid:

  • == (võrdsus)
  • != (erinevus)
  • > (suurem)
  • < (väiksem)
  • >= (suurem või võrdne)
  • <= (väiksem või võrdne)
// Täisarvude võrdlus
int x = 10;
int y = 20;
boolean isEqual = (x == y); // false
boolean isGreater = (x > y); // false

// Ujuvpunktarvude võrdlus
double a = 3.14;
double b = 3.14;
boolean areEqualDoubles = (a == b); // true (täpsete väärtuste puhul)

// Tähemärkide võrdlus
char c1 = 'A';
char c2 = 'B';
boolean isCLessThanC2 = (c1 < c2); // true

// Boolean tüüpi võrdlus
boolean flag1 = true;
boolean flag2 = false;
boolean areFlagsEqual = (flag1 == flag2); // false

Oluline on meeles pidada, et ujuvpunktarvude (float, double) võrdlemisel võib otsene == kasutamine olla ebatäpne, kuna arvude esitusviis mälus võib põhjustada täpsusvigu. Sellistel juhtudel soovitatakse võrrelda absoluutset erinevuse väärtust väikese tolerantsi (epsilon) abil.

double val1 = 0.1 + 0.2; // tegelikult mitte täpselt 0.3, täpsuse tõttu
double val2 = 0.3;
double epsilon = 1e-9; // Väike tolerants

// Ebapraktiline meetod
boolean incorrectEquality = (val1 == val2); // võib olla false

// Soovitatav meetod ujuvpunktarvude võrdlemiseks
boolean correctEquality = (Math.abs(val1 - val2) < epsilon); // true