연산자(operator)
1. 산술 연산자 : 사칙 연산을 제공
int n = 10;
System.out.println("n + 6 = " + (n + 6));
System.out.println("n =" + n);
// 산술 계산을 한다고 변수의 값이 변화하는 것은 아님
System.out.println("n - 6 = " + (n - 6)); // 4
System.out.println("n * 2 = " + n * 2); // 20
System.out.println("n / 3 = " + n / 3); // 3
System.out.println("n % 3 = " + n % 3); // 1
System.out.println("n / 3.0 = " + n / 3.0);
// n / 3 은 자료형이 정수이기 때문에 3까지만 출력 된다
// n / 3.0 은 실수형으로 자동 형변환 되어 나머지까지 나오게 된다.
// 3.3333333333333335
// 소수점 끝자리가 5인 이유는 계산 시 오차가 발생했기 때문
2. 대입 연산자 : 공간(= 변수)에 값을 할당하는 연산자
- 좌변은 공간, 우변을 결과 값
- 대입 연산은 항상 우변부터 수행
- 대입 연산의 양변의 자료형은 일치시킨다
int n = 10 + 3;
// int n = 13;
// 우변부터 계산 후 변수에 대입
System.out.println("n = " + n);
int a, b, c = 30;
// 1. a, b, c 모두 30으로 초기화 된다??
// 2. c 만 30으로 초기화 된다??
// int a, int b, int c = 30 과 같음
// 즉, 답은 2번
// 변수를 한번에 초기화 하는 법
int d, e, f;
d = e = f = 30;
3. 복합 대입 연산자 : 산술 + 대입
- 연산한 결과를 변수에 다시 저장시 사용
int n = 10;
n += 6; // n = n + 6;
System.out.println("n = " + n); // 16
n -= 3;
System.out.println("n = " + n); // 13
n *= 2;
System.out.println("n = " + n); // 26
n /= 2;
System.out.println("n = " + n); // 13
n %= 5;
System.out.println("n = " + n); // 3
int a = 5, b = 3, c = 4;
a += b *= c -= 2;
// 복합대입연산자는 우선순위가 존재하지 않음
System.out.println("a = " + a); // 11
System.out.println("b = " + b); // 6
System.out.println("c = " + c); // 2
4. 증감 연산자 : 피연산자를 1증가 혹은 1감소
int n = 10;
++n; // 전치 : 연산자가 앞에 붙은 경우
System.out.println(n); // 11
--n;
System.out.println(n); // 10
n++; // 후치 : 연산자가 뒤에 붙은 경우
System.out.println(n); // 11
n--;
System.out.println(n); // 10
// 증감연산은 단독으로 사용 시 (전치/후치)는 차이가 없다.
// (전치/후치)가 상관있는 경우
int n1 = 10, n2, n3;
n2 = ++n1; // 전치 : 증감 후 다른 연산
System.out.println(n1 + ", " + n2); // 11, 11
n3 = n1++; // 후치 : 다른 연산 후 증감
System.out.println(n1 + ", " + n3); // 11, 10
// 연습
int a = 5, b = 4, c = 7, d;
d = ++a + b-- + c++;
System.out.println(a); // 6
System.out.println(b); // 3, 후치는 제일 마지막에 연산
System.out.println(c); // 8, 후치는 제일 마지막에 연산
System.out.println(d); // 17
5. 비교 연산자 : 데이터의 대소 관계를 비교
- 비교 결과는 boolean(true/false)로 얻어진다
int n = 10;
System.out.println("n > 10 결과 : " + (n > 10)); // false
System.out.println("n >= 10 결과 : " + (n >= 10)); // true
System.out.println("n < 20 결과 : " + (n < 20)); // true
System.out.println("n <= 20 결과 : " + (n <= 20)); // true
System.out.println("n == 9 결과 : " + (n == 9)); // false, 같으면 참, 다르면 거짓
System.out.println("n != 9 결과 : " + (n != 9)); // true, 같으면 거짓, 다르면 참
System.out.println();
// 결과는 boolean 타입에 저장할 수도 있다.
boolean result = n == 10; // boolean result = true
System.out.println("result = " + result); // result = true
6. 논리 연산자 : true / false 를 연산
- 비교 결과는 boolean( true / false )로 얻어진다
// 1. && : AND, 양쪽이 모두 참이면 결과가 참
// - 다른 말로 곱(*) 연산
// true : 1, false : 0 이라고 보면 됨
System.out.println("true AND true 결과 : " + (true && true)); // ture
System.out.println("true AND false 결과 : " + (true && false)); // false
System.out.println("false AND true 결과 : " + (false && true)); // false
System.out.println("false AND false 결과 : " + (false && false)); // false
System.out.println();
// 2. || : OR, 양쪽 모두 거짓이면 결과가 거짓
// - 다른 말로 합(+) 연산
// true : 1, false : 0 이라고 보면 됨
System.out.println("true OR true 결과 : " + (true || true)); // true
System.out.println("true OR false 결과 : " + (true || false)); // true
System.out.println("false OR true 결과 : " + (false || true)); // true
System.out.println("false OR false 결과 : " + (false || false)); // false
System.out.println();
// 3. ! : NOT, 참을 거짓으로 거짓을 참으로 변경
// - 다른 말로 반전 연산
// true : 1, false : 0 이라고 보면 됨
System.out.println("NOT true 결과 : " + !true); // false
System.out.println("NOT false 결과 : " + !false); // true
7. .equals : 자바 문자열 비교
- 문자열이 동일한지 확인한다
String a = "안녕하세요";
String b = "안녕하세요";
System.out.println(a.equals(b)); // true 출력
728x90
'BE > JAVA' 카테고리의 다른 글
IntelliJ 에서 JavaFX 프로젝트 만들기 (0) | 2024.03.09 |
---|---|
11. JAVA - Scanner (0) | 2023.11.25 |
09. JAVA - 포멧 문자 (1) | 2023.11.13 |
08. JAVA - 패키지란? (0) | 2023.11.13 |
07. JAVA 변수와 자료형 (0) | 2023.11.09 |