본문 바로가기

BackEnd/Java

[java]연산자

728x90
반응형
1. 연산자의 종류와 우선순위

 

연산자는 특정한 연산을 수행하기 위해 사용하는 기호입니다.

연산자를 한 줄에 여러개를 사용해도 우선 적용되는 순서가 있습니다.

 

연산자
우선순위
종류 연산자
1 최우선 연산자 [], ., (메소드), (후행)++, (후행)--
2 단항 연산자 !, ~(비트 NOT), ++(선행), --(선행),
+(단항), -(단항), ()
3   (데이터 형) : 타입, new : 객체 생성
4 산술 연산자 *, /, %
5 =, -
6 쉬프트 연산자 <<, >>, >>> (비트 이동 연산자)
7 비교 연산자 <, <=, >, >=, instanceof
8 ==, !=
9 비트 논리 연산자(?) & (비트 AND)
10 ^ (비트 XOR)
11 | (비트 OR)
12 논리 연산자 &&(논리 AND)
13 ||(논리 OR)
14 삼항 연산자 (조건) ? 참 : 거짓
15 대입 연산자 =, +=, -=, *=, /=, %=, &=, |=,
^=, >>=, <<=, >>>=

 

 

2. 산술 연산자

 

변수와 상수를 함께 사용해 기본적인 계산을 할 수 있습니다.

 

NO 연산자 의미 사용방법
1 + 더하기 c = a + b
2 - 빼기 c = a - b
3 * 곱하기 c = a * b
4 / 나누기 c = a / b
5 % 나머지 c = a % b

 

계산한 값들을 c라는 변수에 대입하는 것입니다.

 

package java1211;
public class Calculate {
    public static void main(String[] args) {
    int a = 20; // a에 20을 대입
    int b = 7; // b에 7을 대입
        System.out.println(a + b);
        System.out.println(a - b);
        System.out.println(a * b);
        System.out.println(a / b);
        System.out.println(a % b);
    }
}
27
13
140
2
6

 

위와 같은 결과 값이 도출됩니다.

특히, 나눗셈( / )은 a를 b로 나눈 몫, '%'는 a를 b로 나눈 나머지를 도출합니다.

 

 

3. 단항 연산자

 

항이 하나인 연산자입니다.

 

NO 연산자 의미 사용방법 설명
1 +, - 부호 연산자 -a   변수 a의 부호를 바꾼다.
2 ! 부정 연산자 !a   논리 부정 연산자는 참(true)을 거짓(false)으로,
  거짓을 참으로 바꾸는 연산자입니다.
3 ++ 증가 연산자 ++a; 또는 a++;   변수 a에 1을 더한 후 a에 저장한다.
4 -- 감소 연산자 --a; 또는 a--;   변수 a에 1을 뺀 후 a에 저장한다.

 

package java1211;
public class Calculate {
    public static void main(String[] args) {
    
        int a = -1;
        int b = 2;

        System.out.println(a);
        System.out.println(-b); //부호를 바꿔줍니다.

        boolean c = true;
        System.out.println(!c); // 값을 바꾸어 출력합니다.

        int d = 1;

        d++;                     // d의 값을 1 증가
        System.out.println(d);   // 증가되었으므로 2
        System.out.println(++d); // 증가시킨 다음에 출력했으므로 3
        System.out.println(d++); // 먼저 3을 출력한 다음에 1증가
        System.out.println(d);   // 현재 d는 4
        
    }
}
-1
-2
false
2
3
3
4

 

위의 내용 중 증감 연산자의 내용이 이해하기 좀 까다로운 부분이 있습니다.

++a;    -->   a = 1 + a; (1을 먼저 더해주어 a+1이라는 결과를 출력합니다.)  

a++;    -->   a = a + 1; (a를 먼저 출력한 후 1을 더해줍니다.)

 

 

4. 비교 연산자(equals)

 

양 변을 비교해 맞으면 참(true) 다르면 거짓(false)를 결과를 출력합니다.

주로 반복문이나 조건문과 같은 제어문에 사용됩니다.

 

NO 연산자 종류 사용방법 설명
1 == 같다 a == b   a, b가 같으면 참
2 < 작다 a < b   a가 b보다 작으면 참
3 > 크다 a > b   a가 b보다 크면 참
4 <= 작거나 같다 a <= b   a가 b보다 작거나 같으면 참
5 >= 크거나 같다 a >= b   a가 b보다 크거나 같으면 참
6 != 같지 않다 a != b   a와 b가 같지 않으면 참
package java1211;
public class Calculate {
    public static void main(String[] args) {
    
        int a = 5;
        int b = 10;
        inc c = 15;
        
        System.out.println(a < b);
        System.out.println(a + b >= c);
        
        double d = 2.152;
        double e = 4.154;
        
        System.out.println(a != b);
        
        String f = "Hello JAVA!";
        System.out.println( c1.equals("Hello java!"));
        System.out.println( c1.equals("Hello JAVA!"));
        
    }
}
true
true
true
false
true

 

자바의 문자열에서는 대소문자를 구분해야합니다. 정확하게 일치해야 true가 출력이 됩니다.

또한, 연산자와는 다르게 문자열의 비교는 equlas()라는 메서드를 사용합니다.

 

 

5. 논리 연산자

 

NO 연산자 종류 사용방법 설명
1 && AND a && b   a, b가 모두 참이 되어야 함.
2 || OR a || b   a, b 둘 중 하나가 참이 되어야 함.
3 ! NOT !a   a가 참이면 거짓이고, 거짓이면 참이 됨.
package java1211;
public class Calculate {
    public static void main(String[] args) {
    
        int a = 5;
        
        System.out.println(4 < a && a < 10);   // 4 < a < 10
        System.out.println((4 < a && a < 10)&& a%2 == 0);
        System.out.println((4 < a && a < 10)|| a%2 == 0);
        
    }
}
true
false
true

 

컴퓨터 언어는 각각 비교를 해주어야 합니다.

ex)

4 < a < 10                    →   사용할 수 없습니다.

대신 a > 4 && a < 10   →   사용할 수 있습니다.

 

 

6. 비트 연산자

 

연산하는 값을 이진수로 표현했을 때, 규칙에 따라 알맞은 결과를 반환합니다.

 

NO 연산자 종류 사용방법 설명
1 & 비트 AND a & b  변수 a, b의 비트 단위의 AND
2 | 비트 OR a | b  변수 a, b의 비트 단위의 OR
3 ^ 비트 NOR a ^ b    변수 a, b의 비트 단위의 XOR
4 ~ 비트 NOT ~a 변수 a의 단위의 부정

 

package java1211;
public class Calculate {
    public static void main(String[] args) {
    
        int a = 15;
        int b = 5;
        
        System.out.println(a | b);     // 1111 or 0101 → 1111
        System.out.println(a & b);     // 1111 and 0101 → 0101   
        System.out.println(a ^ b);     // 1111 xor 0101 → 1010
        System.out.println(a >> 2);    // 1111 → 0011
        System.out.println(b << 4);    // 0101 → 01010000
    }
}
15
5
10
3
80

 

비트연산자를 사용할 때에는 이진수에 대해 잘 알아야합니다!

 

 

7. 기타 연산자

 

(1) 삼항 연산자

 

package java1211;
public class Calculate {
    public static void main(String[] args) {
    
        int age = 17;
        
        System.out.println(age > 19 ? "성인입니다." : "청소년입니다.");
        
        //	if(age > 19){
        //		System.out.println("성인입니다.");
        //	} else {
        //  	System.out.println("청소년입니다.");
		//	}
        // if문을 생략해서 삼항연산자의 코드와 같이 작성할 수 있습니다.
    }
}
청소년입니다.

 

조건 ? 참일때 결과 : 거짓일때 결과

 

 

(2) 대입 연산자

 

NO 연산자 적용 예시 형식 설명
1 = a = 1 a = 1 변수 a에 1을 저장
2 +=(더하기) a += 2 a = a + 2 변수 a에 2를 더해 다시 a에 저장
3 -=(빼기) a -= 4 a = a - 4 변수 a에 4를 뺀 후 다시 a에 저장
4 *=(곱하기) a *= 7 a = a * 7 변수 a에 7을 곱한 후 다시 a에 저장
5 /=(나누기) a /= 3 a = a / 3 변수 a를 3으로 나눈 몫을 다시 a에 저장
6 %=(나머지) a %= 5 a = a % 5 변수 a를 5로 나눈 나머지를 a에 저장
package java1211;
public class Calculate {
    public static void main(String[] args) {
    
        int a = 3;
        
        a += 1;
        System.out.println(a);
        
        a /= 2;
        System.out.println(a);
        
        a += a;
        System.out.println(a);
        
    }
}
4
2
4

 

728x90
반응형

'BackEnd > Java' 카테고리의 다른 글

[java] 배열(array)  (0) 2022.12.12
[java] 2022.12.08 추가 연습 문제 풀이  (0) 2022.12.12
[java] 2022.12.08 연습 문제 풀이  (2) 2022.12.12
[java] 반복문(for, while, do~while)  (0) 2022.12.12
[java]변수와 상수  (0) 2022.12.11