Chihiro's Blog
[Java] 5일차 - Operator 본문
1. 연산자 (Operator)
연산자는 대입 연산자와 산술 연산자로 구분이 됩니다.
대입 연산자 (assignment operator) | = (등호, 오른쪽 값을 왼쪽에 대입(저장)) |
산술 연산자 (arithmetic operator) | +, -, *, /, (나머지 연산자는 %) |
나머지 연산자 구하기 (%)
int result;
int num1 = 7, num2 = 3;
System.out.println(num1 + "/" + num2 + " = " + (num1 / num2));
System.out.println(num1 + "%" + num2 + " = " + (num1 % num2));
출력된 값은
7%3 = 1
두개의 변수값 바꾸기
int num3 = 100;
int num4 = 200;
int temp; // 임시 변수 생성
System.out.println("바꾸기 전 num3 = " + num3 + " num4 = " + num4);
temp = num3;
num3 = num4;
num4 = temp;
System.out.println("바꾼 후 num3 = " + num3 + " num4 = " + num4);
결과값
바꾸기 전 num3 = 100 num4 = 200
바꾼 후 num3 = 200 num4 = 100
대입 연산자도 연산자 입니다. 따라서 연산의 결과값이 있습니다.
2. 복합 대입 연산자 (compound assignment operators)
복합 대입 연산자에는
("+=, -=, *=, /=, %=, 등..") 이 있습니다.
기본 변수값 증가 감소하기
int num1 = 10;
// 기본 변수값 증감
num1 = num1 + 100; // num1에 100을 더하기 위한 식
num1 = num1 - 10;
num1 = num1 / 5;
System.out.println("num1: " + num1); // 20이 나온다.
기타 복합대입연산자
int num2 = 10;
num2 += 100; // num2 = num2 + 100 과 동일하다.
num2 -= 10;
num2 /= 5;
System.out.println("num2: " + num2); // 똑같이 20이 나옵니다.
3. 부호연산자 (sign operator)
+ 부호 연산자 | 수의 부호 (양,음) 가 바뀌지 않습니다. |
- 부호 연산자 | 수의 부호 (양,음) 가 바뀝니다. |
int num1 = -10;
int num2 = +num1;
int num3 = -num2;
결과값
num1 : -10
num2 : -10
num3 : 10
num1의 값은 -10이며,
num2에서 부호연산자 +가 붙어 +num1 이 되었는데,
이 경우 수의 부호가 바뀌지 않음으로 num2의 값은 그대로 -10이며
num3의 경우 -num2가 입력되어 있고, 수의 부호가 바뀌게 됩니다.
따라서 num3의 값은 10이 나오는 것 을 알 수 있습니다.
4. 증감연산자 (Increment / Decrement Operator)
++ 변수 | 변수의 값을 1 증가시켜서 저장합니다. |
-- 변수 | 변수의 값을 1 감소시켜서 저장합니다. |
증감연산자에는 prefix(접두사), postfix(접미사) 가 있는데,
접두사(prefix)인 경우에는, 증감(++, --)이 먼저 된 후 다른 연산자가 동작하며
접미사(postfix)인 경우에는, 다른 연산자 먼저 실행된 후 증감(++, --)이 동작합니다.
++ 변수를 이용한 예시
int num1 = 100;
num1++; // num1 변수값 1 증가
결과값
101 이 나옵니다.
-- 변수를 이용한 예시
int num2 = 200;
--num2;
num2--;
System.out.println("num2: " + num2); // 두번 감소하여 198 나온다.
증감연산자는 변수 앞 / 뒤에 놓아도 된다는 것을 알 수 있습니다.
접두사 prefix 의 경우
접두사(prefix)인 경우에는, 증감(++, --)이 먼저 된 후 다른 연산자가 동작한다는 것을 기억하자!
int num3 = 100;
int num4 = ++num3; // prefix
System.out.println("num3: " + num3);
System.out.println("num4: " + num4);
결과값
num3: 101
num4: 101
postfix 의 경우
접미사(postfix)인 경우에는, 다른 연산자 먼저 실행된 후 증감(++, --)가 동작한다는 것을 기억하자!
int num5 = 100;
int num6 = num5++; // postfix
System.out.println("num5: " + num5);
System.out.println("num6: " + num6);
결과값
num5: 101
num6: 100
증감 연산자는 가극접 단독으로 사용하는 것이 좋다.
int num8 = 100;
num8++; // 증감 연산자는 가급적 단독으로 사용하기
System.out.println("num8 : " + num8);
5. 관계 (비교) 연산자
- 비교 연산의 결과를 참(true) 또는 거짓(false)으로 리턴하는 연산자
A < B | A는 B보다 작다 |
A > B | A는 B보다 크다 |
A >= b | A는 B보다 크거나 같다 |
A <= B | A는 B보다 작거나 같다 |
A == B | A와 B가 같다 |
A != B | A와 B는 다르다 |
System.out.println(10 < 20);
System.out.println(10 > 20);
boolean b = 1.2 <= 2.3;
System.out.println("b = " + b);
boolean 공부하기
6. 논리 연산자 ( &&, ||, !, ^)
1. A && B | A와 B가 모두 참일 때만 결과가 true, 나머지는 결과가 false |
2. A || B | A나 B 둘 중 하나가 참이면 결과가 true, 둘 다 거짓이면 결과가 false |
3. !A | A가 참이면 결과가 false, 거짓이면 결과가 true |
4. A ^ B | (XOR 연산) A, B 둘의 논리값이 같으면 false, 다르면 true |
논리연산자는 말로 표현이 가능해야 한다. 익히고 그리면서 공부하자.
int num1 = 10;
System.out.println(num1 > 0 && num1 < 100); // 1번 - true
System.out.println(num1 > 0 && num1 < 10); // - false
System.out.println(num1 < 0 || num1 > 100); // 2번 - false
System.out.println(!(num1 > 0) ); // 3번 - false
System.out.println(num1 < 0 ^ num1 > 100); // 4번 - false
System.out.println(num1 < 0 ^ num1 < 100); // - true
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
[JAVA] 7일차 Switch문 (1) | 2019.05.22 |
---|---|
[Java] 6일차 - If문 (2) | 2019.05.15 |
[Java] 4일차 - Input (2) | 2019.05.14 |
[JAVA] 1일차. 출력, 연산, 선언, 자동형변환 (1) | 2019.05.10 |
[JAVA] 2차시 메모 (0) | 2019.05.10 |