1. 연산자
"어떠한 기능을 수행하는 기호 (+, -, *, / 등)"
2. 피연산자
"연산자의 작업 대상 (변수, 상수, 리터럴, 수식)"
3. 연산자의 우선 순위
- 괄호의 우선순위가 제일 높다.
- 산술 > 비교 > 논리 > 대입
- 단항 > 이항 > 삼항
- 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽이다.
/* * 기본 적인 연산자 들의 사용 방법 */ package com.tistory.gangzzang; public class Operator { public static void main(String[] args) { // 1. 증감 연산자 [ ++, -- ] - 증감 연산자는 1증가 또는 감소 시키며, 피연산자(Operand)의 양쪽 모두 사용 가능하다. // ++i 와 i=i+1 과 결과값은 같지만, 수행되는 과정이 ++i 가 더 빠르다. int z = 5; int sum = 0; sum = z++; System.out.println("sum = z++, 후위 실행 후 z = " + z + ", sum = " + sum); z = 5; sum = 0; sum = ++z; System.out.println("sum = ++z, 전위 실행 후 z = " + z + ", sum = " + sum); System.out.println(); // 2. 부호 연산자 [ + , - ] - 피연산자의 부호를 변경하는데 사용한다. int a = -10; a = +a; System.out.println(a); a = -10; a = -a; System.out.println(a); System.out.println(); // 3. 비트전환 연산자 [ ~ ] - 피연산자를 2진수로 표현 했을 때, 0은 1로 1은 0으로 바뀐다. // ' ~ ' 에 의해 비트전환 되고 나면 피연산자의 부호가 반대로 변경된다. int b = 6, c = 5; System.out.println(b++); System.out.println(++c); System.out.println("b = " + b + ", c = " + c); System.out.println(); // 4. 논리부정 연산자 [ ! ] - boolean 형에만 사용할 수 있으며, true는 false로 false는 true로 변경한다. boolean flag = false; System.out.println(flag); flag = !flag; // flag의 값이 false에서 true로 바뀐다. System.out.println(flag); flag = !flag; // flag의 값이 true에서 false로 바뀐다. System.out.println(flag); System.out.println(); // 5. 사칙 연산자 [ + , - , * , / ] - 곱셈(*), 나눗셈(/), 나머지(%) 연산자가 덧셈(+), 뺼셈(-) 연산자보다 우선순위가 높다. // int형 보다 크기가 작은 자료형은 int 형으로 형 int d = 10, e = 5, sum2 = 0; sum2 = d + e; System.out.println(sum2); sum2 = d - e; System.out.println(sum2); sum2 = d * e; System.out.println(sum2); sum2 = d / e; System.out.println(sum2); System.out.println(); // 6. 나머지 연산자 [ % ] - 왼쪽의 피연산자를 오른쪽 피연산자로 나누고 난 나머지 값을 돌려주는 연산자이다. int mok = 10 / 8 ; int nmg = 10 % 8 ; System.out.println("10을 8로 나눈 몫은 " + mok + " 이고, 나머지는 " + nmg + " 입니다."); System.out.println(); // 7. 쉬프트 연산자 [ << , >> , >>> ] - 정수형 변수에만 사용 가능, 2의 n승 곱과 나눈 것과 곱한 결과를 얻을 수 있다. int temp; // 계산 결과를 담기 위한 변수 System.out.println(-8); System.out.println(Integer.toBinaryString(-8)+"\n"); // 2진수 문자열로 변경한다. temp = -8 << 1; System.out.println("-8 << 1 = " + temp); System.out.println(Integer.toBinaryString(temp)+"\n"); temp = -8 << 2; System.out.println("-8 << 2 = " + temp); System.out.println(Integer.toBinaryString(temp)+"\n"); temp = -8 >> 1; System.out.println("-8 >> 1 = " + temp); System.out.println(Integer.toBinaryString(temp)+"\n"); temp = -8 >> 2; System.out.println("-8 >> 2 = " + temp); System.out.println(Integer.toBinaryString(temp)+"\n"); temp = -8 >>> 1; System.out.println("-8 >>> 1 = " + temp); System.out.println(Integer.toBinaryString(temp)+"\n"); temp = -8 >>> 2; System.out.println("-8 >>> 2 = " + temp); System.out.println(Integer.toBinaryString(temp)+"\n"); System.out.println(); // 8. 대소비교 연산자 [ < , > , <= , >= ] - 두 연산자의 크기를 비교하는 연산자이다. int big = 10, small = 5; System.out.println("big이 small 보다 더 큰가? " + (big > small)); System.out.println("big이 small 보다 더 작은가? " + (big > small)); System.out.println(); // 9. 등가비교 연산자 [ == , != ] - 두 피연산자에 저장되어 있는 값이 같은지 다른지 비교하는 연산자이다. int f = 10, g = 5; System.out.println("f와 g가 같은가? " + (f == g)); System.out.println("f와 g가 같지않은가? " + (f != g)); System.out.println(); // 10. 논리 연산자 [ && , || ] - 피연산자로 boolean형 또는 값을 결과로 하는 조건식만을 허용한다. int num1 = 10, num2 = 5; System.out.println("num1 또는 num2 중에 10이 있습니까? " + (num1 == 10 || num2 == 10)); System.out.println("num1 과 num2 가 둘 다 10입니까? " + (num1 == 10 && num2 == 10)); System.out.println(); // 11. 비트연산자 [ & , | , ^ ] - 이진 비트연산을 수행한다. int j = 3, k = 5; System.out.println("j는 " + j + "이고, k는 " + k + "일 때, "); System.out.println("j | y = " + (j | k)); System.out.println("j & y = " + (j & k)); System.out.println("j ^ y = " + (j ^ k)); System.out.println(); System.out.println("0 | 0 = " + (0 | 0)); System.out.println("0 | 1 = " + (0 | 1)); System.out.println("1 | 0 = " + (1 | 0)); System.out.println("1 | 1 = " + (1 | 1)); System.out.println(); System.out.println("0 & 0 = " + (0 & 0)); System.out.println("0 & 1 = " + (0 & 1)); System.out.println("1 & 0 = " + (1 & 0)); System.out.println("1 & 1 = " + (1 & 1)); System.out.println(); System.out.println("0 ^ 0 = " + (0 ^ 0)); System.out.println("0 ^ 1 = " + (0 ^ 1)); System.out.println("1 ^ 0 = " + (1 ^ 0)); System.out.println("1 ^ 1 = " + (1 ^ 1)); System.out.println(); // 12. 삼항연산자 [ ? : ] - 조건식과 조건식이 참일 때와 거짓일 때 반환되는 값, 연산결과가 true 또는 false인 식이 사용되어야 한다. int l = 10, m = -10; int absL = (l >= 0) ? l : -l; int absM = (m >= 0) ? m : -m; System.out.println("l = 10 일 때, l 의 절대 값은 " + absL); System.out.println("m = -10 일 때, m 의 절대 값은 " + absM); System.out.println(); // 13. 대입연산자 [ = , op= ] - 변수에 값 또는 수식의 연산결과를 저장하는데 사용한다. int i = 0; i += 3; i = i + 3; i -= 3; i = i - 3; i *= 3; i = i * 3; i /= 3; i = i / 3; i %= 3; i = i % 3; i <<= 3; i = i << 3; i >>= 3; i = i >> 3; i >>>= 3; i = i >>>3; i &= 3; i = i & 3; i ^= 3; i = i ^ 3; i |= 3; i = i | 3; } // main } // Operator
'Java > Java SE' 카테고리의 다른 글
클래스(Class), 객체(Object), 인스턴스(Instance), 생성자(Constructor) (2) | 2013.07.30 |
---|---|
객체지향 프로그래밍 (Object-oriented Programming) (0) | 2013.07.29 |
JAVA 반복문 - for, while, do-while (0) | 2013.07.26 |
JAVA 조건문 - if, switch (0) | 2013.07.23 |
JAVA 변수(variable) (0) | 2013.07.22 |