Sobes.tech
Junior

Ako možno porovnať primitívne dátové typy?

sobes.tech AI

Odpoveď od AI

Primitívne dátové typy v Jave sa porovnávajú podľa ich hodnoty pomocou porovnávacích operátorov:

  • == (rovnosť)
  • != (nerovnosť)
  • > (väčšie)
  • < (menšie)
  • >= (väčšie alebo rovné)
  • <= (menšie alebo rovné)
// Porovnanie celých čísel
int x = 10;
int y = 20;
boolean isEqual = (x == y); // false
boolean isGreater = (x > y); // false

// Porovnanie čísel s pohyblivou desatinnou čiarkou
double a = 3.14;
double b = 3.14;
boolean areEqualDoubles = (a == b); // true (pre presné hodnoty)

// Porovnanie znakov
char c1 = 'A';
char c2 = 'B';
boolean isCLessThanC2 = (c1 < c2); // true

// Porovnanie typu boolean
boolean flag1 = true;
boolean flag2 = false;
boolean areFlagsEqual = (flag1 == flag2); // false

Je dôležité si uvedomiť, že pri porovnávaní čísel s pohyblivou desatinnou čiarkou (float, double) môže byť priame použitie == nepresné kvôli vlastnostiam reprezentácie čísel v pamäti. V takýchto prípadoch sa odporúča porovnávať absolútnu hodnotu rozdielu s malou toleranciou (epsilon).

double val1 = 0.1 + 0.2; // v skutočnosti nie je presne 0.3 kvôli presnosti
double val2 = 0.3;
double epsilon = 1e-9; // Malá tolerancia

// Nepresný spôsob
boolean incorrectEquality = (val1 == val2); // môže byť false

// Odporúčaný spôsob na porovnávanie čísel s pohyblivou desatinnou čiarkou
boolean correctEquality = (Math.abs(val1 - val2) < epsilon); // true