4. Java 강좌 연산자 1
연산자
오늘은 연산자에 대해서 배워보도록 하겠습니다.
연산자의 종류는 위와 같이 여섯 가지인데, 우선순위는 위의 단항 연산자가 가장 높습니다.
* 단항 연산자 중 (변수타입)은 이전 포스팅에서 배웠던 형 변환을 말하며, +와 -는 수의 앞에 음수와 양수를 나타내는 것입니다.
연산자의 연산은 우선순위에 의해 실행되며, 같은 우선순위의 연산은 연산 방향을 따르게됩니다.
연산 방향이 뭔지 이해하기 힘들 수 있으니 어떤 건지 살펴보겠습니다.
x = y = 2 + 6 + 3 * 10
위 수식의 연산 순서는 어떻게 될까요?
연산 순서는 아래와 같습니다.
1. 3 * 10
2. 2 + 6
3. 8 + 30
4. y = 38
5. x = y(38)
연산 순서를 보면 산술 연산자 중 곱셈이 먼저, 그리고 덧셈은 좌측에서 우측으로, 대입 연산자는 우측에서 좌측으로 연산합니다.
연산자의 우선순위나 방향은 우리가 흔히 알고 있는 사칙연산과 크게 다르지 않아서 상식적으로 풀어나가면 대부분 해결이됩니다.
하지만 and(&)와 or(|)이 함꼐 붙어있는 연산 등 연산 순서가 확실하지 않다면 괄호를 사용해서 묶어주는 편이 보기에도 편하고,
후에 코드를 유지 보수 하기에도 용이합니다.
증감 연산자
증감 연산자는 boolean형을 제외한 기본형 변수에 사용 가능하며, 피연산자의 좌측과 우측에 모두 사용할 수 있습니다.
class Noname1
{
public static void main(String[] args)
{
int a = 10;
int b = 10;
int c = 0;
System.out.println(a++ +"\t"+ a); // 1. a 출력 후 a값 1 증가
a = 10;
System.out.println(++a +"\t"+ a); // 2. a값 1 증가 후 a 출력
c = b++; // 3. c에 b 대입 후 b값 1 증가
System.out.println(b +"\t"+ c);
}
}
주석을 달아 놓았지만, 이해가 어려울 수 있으므로 한번 더 설명드리겠습니다.
먼저 첫 번째에 있는 a++는 a를 출력한 후 연산(a = a + 1)을 합니다.
결과는 a++(10), a(11)이 나오겠죠.
두 번째로 다시 a는 10으로 초기화를 해준 뒤,
++a를 통해서 연산(a = a + 1)를 먼저 한 후 출력합니다.
결과는 ++a(11), a(11)이 나옵니다.
세 번째로 c = b++인데요,
c = b++ 또한 첫 번재와 비슷하게 먼저 대입을 한 뒤 연산(b = b + 1)을 합니다. b(11), c(10)
처음 접하시는 분들은 이런 개념이 이해하기 힘들 수 있지만 천천히 읽어보시면 이해하실 수 있으니,
한번에 이해가 안된다면 여러번 읽어보세요!
'Programming > Java' 카테고리의 다른 글
6. Java 강좌, 연산자 3 (0) | 2015.02.10 |
---|---|
5. Java 강좌, 연산자 2 (2) | 2015.02.08 |
3. Java 강좌, 변수(Variable) 2 (0) | 2015.01.29 |
2. Java 강좌, 변수(Variable) 1 (6) | 2015.01.26 |
1. Java 강좌, 자바를 시작하기 전에... (8) | 2015.01.25 |