λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Language/Java

[Java]μžλ°” 비ꡐ μ—°μ‚°μž: 쑰건문과 데이터 μ²˜λ¦¬μ— ν•„μˆ˜μ μΈ 기초 κ°œλ…

by YJ Dev 2024. 4. 29.
728x90
λ°˜μ‘ν˜•
SMALL

μžλ°” ν”„λ‘œκ·Έλž˜λ°μ—μ„œ 쑰건을 νŒλ‹¨ν•˜κ³  데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” 데에 μžˆμ–΄μ„œ 비ꡐ μ—°μ‚°μžλŠ” ꡉμž₯히 μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€. 이 κΈ€μ—μ„œλŠ” μžλ°”μ˜ 비ꡐ μ—°μ‚°μžμ— λŒ€ν•΄ μžμ„Ένžˆ μ•Œμ•„λ³΄κ³ , 이λ₯Ό ν™œμš©ν•˜μ—¬ 쑰건문과 데이터 처리λ₯Ό μ–΄λ–»κ²Œ ν•  수 μžˆλŠ”μ§€ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

λΉ„κ΅μ—°μ‚°μž


1. 비ꡐ μ—°μ‚°μžπŸ‘―‍♂️

비ꡐ μ—°μ‚°μžλŠ” 두 개의 값을 λΉ„κ΅ν•˜μ—¬ κ·Έ κ²°κ³Όλ₯Ό μ°Έ(true) λ˜λŠ” 거짓(false)으둜 λ°˜ν™˜ν•˜λŠ” μ—°μ‚°μžμž…λ‹ˆλ‹€. μžλ°”μ—μ„œλŠ” λ‹€μ–‘ν•œ μ’…λ₯˜μ˜ 비ꡐ μ—°μ‚°μžκ°€ μ œκ³΅λ©λ‹ˆλ‹€.

ꡬ뢄 연산식 μ„€λͺ…
동등 비ꡐ ν”Όμ—°μ‚°μž1 == ν”Όμ—°μ‚°μž2 두 ν”Όμ—°μ‚°μžμ˜ 값이 같은지λ₯Ό 검사
!= 두 ν”Όμ—°μ‚°μžμ˜ 값이 λ‹€λ₯Έμ§€λ₯Ό 검사
크기 비ꡐ > ν”Όμ—°μ‚°μž1이 큰지λ₯Ό 검사
>= ν”Όμ—°μ‚°μž1이 ν¬κ±°λ‚˜ 같은지λ₯Ό 검사
< ν”Όμ—°μ‚°μž1이 μž‘μ€μ§€λ₯Ό 검사
<= ν”Όμ—°μ‚°μž1이 μž‘κ±°λ‚˜ 같은지λ₯Ό 검사


μ΄λŸ¬ν•œ 비ꡐ μ—°μ‚°μžλ“€μ€ μ‘°κ±΄λ¬Έμ—μ„œ 주둜 μ‚¬μš©λ˜λ©°, 두 값이 μ„œλ‘œ λΉ„κ΅λ˜κ³  결과에 따라 ν”„λ‘œκ·Έλž¨μ˜ 흐름을 μ œμ–΄ν•˜λŠ” 데에 μ“°μž…λ‹ˆλ‹€.

int num1 = 10;
int num2 = 10;

// num1κ³Ό num2κ°€ 같은지 λΉ„κ΅ν•©λ‹ˆλ‹€.
boolean result1 = (num1 == num2); // true

// num1κ³Ό num2κ°€ λ‹€λ₯Έμ§€ λΉ„κ΅ν•©λ‹ˆλ‹€.
boolean result2 = (num1 != num2); // false

// num1이 num2보닀 μž‘κ±°λ‚˜ 같은지 λΉ„κ΅ν•©λ‹ˆλ‹€.
boolean result3 = (num1 <= num2); // true

char char1 = 'A';
char char2 = 'B';

// char1κ³Ό char2κ°€ μ•„μŠ€ν‚€ μ½”λ“œ κ°’μœΌλ‘œ λΉ„κ΅ν•˜μ—¬ char1이 char2보닀 μž‘μ€μ§€ λΉ„κ΅ν•©λ‹ˆλ‹€.
boolean result4 = (char1 < char2);  // true

int num3 = 1;
double num4 = 1.0;

// num3κ³Ό num4λ₯Ό λΉ„κ΅ν•©λ‹ˆλ‹€. num3은 int νƒ€μž…μ΄κ³ , num4λŠ” double νƒ€μž…μž…λ‹ˆλ‹€.
// μžλ°”λŠ” μžλ™μœΌλ‘œ intλ₯Ό double둜 λ³€ν™˜ν•˜μ—¬ λΉ„κ΅ν•©λ‹ˆλ‹€.
boolean result5 = (num3 == num4); // true

2. 비ꡐ μ—°μ‚°μž ν™œμš©πŸ’ƒ

비ꡐ μ—°μ‚°μžλŠ” 쑰건문과 λ°˜λ³΅λ¬Έμ—μ„œ 주둜 μ‚¬μš©λ©λ‹ˆλ‹€.

μ‘°κ±΄λ¬Έμ—μ„œμ˜ ν™œμš©:

int age = 20;
if(age >= 18) {
    System.out.println("μ„±μΈμž…λ‹ˆλ‹€.");
} else {
    System.out.println("λ―Έμ„±λ…„μžμž…λ‹ˆλ‹€.");
}


λ°˜λ³΅λ¬Έμ—μ„œμ˜ ν™œμš©:

for(int i = 0; i < 5; i++) {
    System.out.println("반볡문 μ‹€ν–‰ 쀑: " + i);
}

3. μ£Όμ˜ν•  μ πŸ§™‍♀️

비ꡐ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•  λ•Œμ—λŠ” 데이터 νƒ€μž…μ— μ£Όμ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μ •μˆ˜μ™€ μ‹€μˆ˜λ₯Ό 비ꡐ할 λ•ŒλŠ” 각각의 νƒ€μž…μ— λ§žλŠ” 비ꡐ μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이 μ½”λ“œλŠ” float와 doubleνƒ€μž…μ˜ λ³€μˆ˜λ₯Ό λΉ„κ΅ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. μ£Όμ˜ν•΄μ•Ό ν•  점은 float와 double은 이진 뢀동 μ†Œμˆ˜μ  λ°©μ‹μœΌλ‘œ 값을 μ €μž₯ν•˜κΈ° λ•Œλ¬Έμ— μ •ν™•ν•œ 비ꡐ가 μ–΄λ ΅λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

float num5 = 0.1f;   // 0.1을 float둜 ν‘œν˜„
double num6 = 0.1;   // 0.1을 double둜 ν‘œν˜„

boolean result6 = (num5 == num6); // num5와 num6이 같은지 비ꡐ
boolean result7 = (num5 == (float) num6);  // num6을 float둜 ν˜•λ³€ν™˜ν•˜μ—¬ num5와 비ꡐ


num5와 num6은 μ‹€μ œλ‘œλŠ” 같은 값을 κ°€μ§€μ§€λ§Œ, 이진 뢀동 μ†Œμˆ˜μ  λ°©μ‹μœΌλ‘œ ν‘œν˜„λ  λ•Œ λ―Έμ„Έν•œ 차이가 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ μœ„ λΉ„κ΅μ—μ„œ result6은 falseκ°€ λ©λ‹ˆλ‹€.

ν•˜μ§€λ§Œ num6을 float으둜 ν˜•λ³€ν™˜ν•˜μ—¬ λΉ„κ΅ν•˜λ©΄ num5와 num6이 같은 κ°’μœΌλ‘œ μ·¨κΈ‰λ˜μ–΄ result7이 trueκ°€ λ©λ‹ˆλ‹€. 뢀동 μ†Œμˆ˜μ  이진 ν‘œν˜„ 방식 λ•Œλ¬Έμ— μƒκΈ°λŠ” 정밀도 문제λ₯Ό κ³ λ €ν•˜μ—¬ μ •ν™•ν•œ 비ꡐλ₯Ό ν•˜κΈ° μœ„ν•΄ ν˜•λ³€ν™˜μ„ ν•œ κ²ƒμž…λ‹ˆλ‹€.
정밀도에 λŒ€ν•΄ 쑰금 더 μžμ„Ένžˆ μ•Œκ³  μ‹Άλ‹€λ©΄ μ•„λž˜ ν¬μŠ€νŒ…μ„ μ°Έκ³ ν•΄ μ£Όμ„Έμš”πŸ˜

" "

[Java]μžλ°” μ‹€μˆ˜ νƒ€μž…

λͺ©μ°¨ 1. μ‹€μˆ˜ νƒ€μž…μ˜ μ’…λ₯˜ 2. 정밀도와 κ·Όμ‚¬μΉ˜ 3. 핡심 λ‚΄μš© μžλ°”μ—μ„œλŠ” μ •μˆ˜μ™€ ν•¨κ»˜ μ‹€μˆ˜ νƒ€μž…λ„ 맀우 μ€‘μš”ν•©λ‹ˆλ‹€. μ •μˆ˜ νƒ€μž…κ³Ό 달리 μ‹€μˆ˜ νƒ€μž…μ€ μ†Œμˆ˜μ  μ΄ν•˜μ˜ 값을 μ €μž₯ν•  수 μžˆμ–΄μ„œ κ³„μ‚°μ˜ μ •

creativevista.tistory.com


λ˜ν•œ, 객체λ₯Ό 비ꡐ할 λ•Œμ—λŠ” 객체의 λ‚΄μš©μ΄ μ•„λ‹Œ 참쑰값이 λΉ„κ΅λ˜λ―€λ‘œ μ£Όμ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. 객체의 λ‚΄μš©μ„ λΉ„κ΅ν•˜λ €λ©΄ equals() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.

String str1 = "μžλ°”";
String str2 = "Java";

// str1κ³Ό str2κ°€ μ°Έμ‘°ν•˜λŠ” λ¬Έμžμ—΄μ˜ λ‚΄μš©μ„ λΉ„κ΅ν•©λ‹ˆλ‹€.
boolean result8 = (str1.equals(str2)); // result8은 falseκ°€ λ©λ‹ˆλ‹€. (λŒ€μ†Œλ¬Έμž ꡬ뢄)
System.out.println("result8 : " + result8);

// ! μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ—¬ str1κ³Ό str2κ°€ μ°Έμ‘°ν•˜λŠ” λ¬Έμžμ—΄μ˜ λ‚΄μš©μ΄ λ‹€λ₯Έμ§€ λΉ„κ΅ν•©λ‹ˆλ‹€.
boolean result9 = (!str1.equals(str2)); // result9은 trueκ°€ λ©λ‹ˆλ‹€.
System.out.println("result9 : " + result9);

4. 핡심 λ‚΄μš©πŸ‘€

λΉ„κ΅μ—°μ‚°μž

728x90
λ°˜μ‘ν˜•