Java
[Java] 비교 연산자, 논리 연산자
gorusair
2021. 12. 13. 12:30
비교 연산자는 두 피연산자를 비교하는 데 사용되는 연산자다. 주로 조건문과 반복문의 조건식에서 사용되며, 연산결과는 오직 true와 false 둘 중의 하나이다.
대소 비교 연산자 < > <= >=
두 피연산의 값의 크기를 비교하는 연산자이다. 참이면 true를 , 거짓이면 false를 결과로 반환한다. 기본형 중에서는
boolean형을 제외한 나머지 자료형에 다 사용할 수 있지만 참조형에는 사용할 수 없다
비교연산자 | 연산결과 |
> | 좌변 값이 크면, true 아니면 false |
< | 좌변 값이 작으면, true 아니면 false |
>= | 좌변 값이 크거나 작으면, true 아니면 false |
<= | 좌변 값이 작거나 같으면, true 아니면 false |
등가비교 연산자 == ! =
두 피연산자의 값이 같은지 또는 다른지를 비교하는 연산자이다. 대소비교 연산자(<,>,<=,>=)와는 달리, 기뵨형은 물론
참조형, 즉 모든 자료형에 사용할 수있다.
비교연산자 | 연산결과 |
== | 두 값이 같으면, true 아니면 false |
!= | 두 값이 다르면, true 아니면 false |
class OperatorEx21 {
public static void main(String[] args){
System.out.printf("10 == 10.0f \t %b%n", 10==10.0f);
System.out.printf("'0' == 0 \t %b%n", '0' == 0);
System.out.printf("'A'==65, \t %b%n", 'A' =65);
System.out.printf("'A' <'B' \t %b%n", 'A' >'B');
System.out.printf("'A'+1 != 'B' \t %b%n", 'A'+1 ! = 'B');
}
}
실행결과
10 ==10.0f true
'0'==0 false
'A' ==65 true
'A' >'B' true
'A' >'B' false
public class OperatorEx22 {
public static void main(String[] args) {
float f = 0.1f;
double d = 0.1;
double d2 = (double)f;
System.out.printf("10.0 == 10.0f, %b%n", 10.0==10.0f);
System.out.printf("0.1 == 0.1f %b%n", 0.1 == 0.1f);
System.out.printf("f = %19.17f%n", f);
System.out.printf("d = %19.17f%n",d);
System.out.printf("d2 = %19.17f%n",d2);
System.out.printf("d==f, %b%n", d==f);
System.out.printf("d2==f, %b%n", d2==f);
System.out.printf("(float)d==f, %b%n", (float)d==f);
}
}
실행결과
10.0 == 10.0f, true
0.1 == 0.1f false
f = 0.10000000149011612
d = 0.10000000000000000
d2 = 0.10000000149011612
d==f, false
d2==f, true
(float)d==f, true
문자열의 비교
두 문자열을 비교할 떄는, 비교 연산자 '=='대신 equals()라는 메서드를 사용해야 한다.
equals()는 비교하는 두 문자열이 같으면 true, 다르면 false를 반환한다.
public class OperatorEx23 {
public static void main(String[] args) {
String str1 = "abc";
String str2 = new String("abc");
System.out.printf("\"abc\"==\"abc\" ? %b%n", "abc"=="abc");
System.out.printf("str1==\"abc\"? %b%n", str1="abc");
System.out.printf("str2==\"abc\"? %b%n", str2="abc");
System.out.printf("str1.equals(\"abc\") ? %b%n", str1.equals("abc"));
System.out.printf("str2.equals(\"abc\") ? %b%n", str2.equals("abc"));
System.out.printf("str2.equals(\"ABC\") ? %b%n", str2.equals("ABC"));
System.out.printf("str2.equalsIgnoreCase(\"ABC\") ? %b%n",
str2.equalsIgnoreCase("ABC"));
}
}
실행결과
"abc"=="abc" ? true
str1=="abc"? true
str2=="abc"? true
str1.equals("abc") ? true
str2.equals("abc") ? true
str2.equals("ABC") ? false
str2.equalsIgnoreCase("ABC") ? true