Ch01. JAVA기초 02

하파타카·2022년 8월 9일
0

패캠JAVA, Spring과정

목록 보기
3/20
post-thumbnail

11.자바의 연산자 (대입, 부호, 산술, 복합대입, 증감연산자)

항을 기준으로 나누었을때 단항, 이항, 삼항 연산가자 있음.
우선순위는 단항 연산자가 높으며, 반대로 대입 연산자의 우선순위는 낮은 편.

항 이란?

연산에 사용되는 값

연산자 란?

항을 이용하여 연산하는 기호

대입 연산자

  • = 연산자를 통해 변수에 다른 값을 대입하는 연산자.
  • 이항 연산자 중 가장 우선순위가 낮은 연산자임.
  • 변수 = 값 의 형태로 사용. 우변의 값이 좌변의 변수에 대입됨.

부호 연산자

  • 단항 연산자
  • 변수의 부호를 유지 하거나 변경함.
    예)
int num = 10;
system.out.println(-num);

이때 변수 num의 값은 바뀌지 않으나, 위처럼 출력 시 부호는 반대로 출력된다.

산술 연산자

+ 더하기
- 빼기
* 곱하기
/ 나누기
% 나눈 나머지를 구함

복합 대입 연산자

대입 연산자가 다른 연산자와 같이 쓰임

+= A = A+B
-= A = A-B

증가 감소 연산자

단항 연산자.
연산자가 항의 앞에 있을때와 뒤에 있을때에 따라 연산시점과 연산결과가 다르니 주의.
매우 자주 사용되니 알아둘 것.

++ A = A + 1
-- A = A - 1

항의 앞에 쓰면 현재 statements가 실행되기 전 증감이 이뤄지며, 뒤에 쓰면 실행된 후 증감이 이루어진다.

예제

public class OperatorTest {
	public static void main(String[] args) {
		
		int gameScore = 150;
		int lastScore = ++gameScore;	// gameScore += 1 와 같은 의미

		System.out.println(lastScore);
		System.out.println(gameScore);
	}
}


12.자바의 연산자 (관계, 논리 연산자)

관계 연산자 (비교 연산자)

이항 연산자.
두 항의 관계에 대해 연산하는 연산자.
주로 결과가 true, false로 반환됨.
조건문과 반복문의 조건식으로 자주 사용됨.

<
>
<=
>=
==
!=

논리 연산자

&& (AND) 양쪽 모두 true여야 true를 반환
|| (OR) 양쪽 중 하나라도 true이면 true를 반환
! (NOT) true는 false, false는 true를 반환

논리연산에서 모든 항이 실행되지 않는 경우

  • 논리곱(&&)의 앞 항이 false이거나 논리합(||)의 앞 항의 결과가 true일 경우 이미 반환값이 결정되었으므로 뒷 항의 연산은 이루어지지 않게 됨.

예제

public class LogicalTest {
	public static void main(String[] args) {
		
		int num1 = 10;
		int i = 2;
		
		boolean value = ((num1 = num1 + 10 ) < 10) && ( ( i = i + 2 ) < 10);
		System.out.println(value);
		System.out.println(num1);
		System.out.println(i);
		
		value = ((num1 = num1 + 10 ) < 10) || ( ( i = i + 2 ) < 10);
		System.out.println(value);
		System.out.println(num1);
		System.out.println(i);

	}
}


13.자바의 연산자 (조건 연산자)

조건 연산자

  • 삼항 연산자
  • 조건의 결과가 true, false 에 따라 다른 결과가 실행됨.
  • if문을 간단히 표현할 때 사용됨.

예제

public class ConitionTest {
	public static void main(String[] args) {
		
		int max;
		System.out.println("두 수를 입력받아 더 큰 수를 출력합니다.\n");
		
		Scanner scanner = new Scanner(System.in);	// 콘솔에서 입력받기 위해 scanner객체 생성
		System.out.println("입력 1 :");
		int num1 = scanner.nextInt();
		System.out.println("입력 2 :");
		int num2 = scanner.nextInt();
		
		max = (num1 > num2)? num1 : num2;
		System.out.println(max);		
	}
}

비트 연산자

  • 단항 연산자와 이항 연산자가 존재

~ 비트의 반전
& 비트단위 and
| 비트단위 or
^ 비트단위 xor. 두 비트가 서로 다른 경우 1을 반환.
<< 왼쪽 shift.
>> 오른쪽 shift.
>>> 오른쪽 shift. 채워지는 비트의 부호와 관계없이 0이 됨.

왼쪽 shift는 숫자 x 2의 n제곱에서 n이 +1되며, 우측shift는 n이 +1되는 연산임.

주의점.
비트 연산만으로는 대상의 값이 변경되지 않음.
값을 변경하기 위해서는 반드시 대입연산자와 함께 사용하여야 함.

예제

public class BitOperationTest {
	public static void main(String[] args) {
		
		int num1 = 5;
		int num2 = 5;
		
		System.out.println( num1 | num2 );
		System.out.println( num1 & num2 );
		System.out.println( num1 ^ num2 );
		System.out.println( ~num1 );
		System.out.println();
		
		System.out.println( num1 << 2);
		System.out.println( num1 );
		System.out.println( num1 <<= 2);
		System.out.println( num1 );
		System.out.println( num1 >> 1 );
	}
}

연산자의 우선순위

참고로 알아둘 것.

단, 괄호를 이용하여 우선순위를 모르더라도 한눈에 파악할 수 있는 가독성 좋은 코드로 작성하는것을 권장.

profile
천 리 길도 가나다라부터

0개의 댓글