본문 바로가기

BE/JAVA

10. JAVA - 연산자

연산자(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