Java 연산자

yihyun·2024년 7월 23일

Java

목록 보기
2/12

연산자(Operator)

Computer의 가장 기본이 되는 기능은 바로 연산이다.

연산자에 붙는 항의 수에 따라 단 항 연산자, 이 항 연산자, 삼 항 연산자로 분류된다.

1. 단 항 연산자

단 항 연산자는 값을 음수 또는 양수로 변환하는 부호 연산자와 값을 증가, 감소 시키는 증감 연산자, boolean값을 반전시키는 논리부정 연산자가 있다.

값을 증가 또는 감소 시키는 증감 연산자의 예시는 다음과 같다.

int x = 10;
int y = 10;

int result1 = (++x) + 10;
int result2 = (y++) + 10;

System.out.println("result1: " + result1); // 출력 값 : 21
System.out.println("result2: " + result2); // 출력 값 : 20

그렇다면 ++가 앞에 붙는 것과 뒤에 붙는 것이 출력값이 왜 다른지를 살펴보면

앞에 ++가 붙을 경우 먼저 값을 증가시킨다는 뜻이고 뒤에 ++가 붙을 경우 나중에 값을 증가시킨다는 뜻이다.

앞에 ++x 를 붙일 경우 먼저 값을 증가시키는 것이기 때문에 증가한 값을 다른곳에 이용할 때 주로 사용한다.

뒤에 x++ 를 붙일 경우 나중에 값을 증가시키는 것으로 카운트를 할때 주로 사용한다.

2. 2항 연산자

이항 연산자는 +, -, *, /, % 이 있다.

+의 경우 값을 더해주는 것으로 숫자는 2개 이상의 수를 더한 값을 출력하지만 문자의 경우 문자를 뒤에 이어붙인 형태로 출력된다.

String str1 = "JDK" + 11 + 0.32; // 문자 + 숫자
System.out.println(str1); // 출력 값 : JDK110.32
		
String str3 = 11 + 0.32 + " Version"; // 숫자 + 문자
System.out.println(str3); // 출력 값 : 11.32 Version
        

%는 나머지를 구하는 연산자로 짝수, 홀수를 구하는 등이 필요할 때 사용한다.

int num = 5;

if(num % 2 == 0) {
	System.out.println("짝수입니다.")
} else {
	System.out.println("홀수입니다.")
}

이외에도 AND(&&), OR(||) 이 있다.
AND는 모두 true인 경우 true이고, OR은 조건 중 하나만 true인 경우 true인 것을 말한다.

즉 AND 연산이 많아질수록 좁아지고, OR 연산이 많아질수록 넓어진다고 생각하면 된다.

또한 두개의 항을 비교하는 비교 연산자가 있다.

  • A==B : A와 B가 같은지 검사
  • A!=B : A와 B가 다른지 검사
  • A>B, A<B : A가 B보다 크거나 작은지 검사
  • A>=B, A<=B : A가 B보다 크거나 같거나, 작거나 같은지 검사

비교연산자는 무조건 왼쪽을 기준으로 한다.

한가지 주의할 점은 비교연산자를 사용해 문자열이 같은지를 검사할 경우에는 == 이 아닌 .equals() 를 사용해줘야 한다.

String str1 = "JAVA";
String str2 = new String("JAVA");

System.out.println(str1 == str2); // 출력 값 : false
System.out.println(str1.equals(str2)); // 출력 값 : true

연산자가 아닌 equals()를 사용해주는 이유는 == 연산자는 문자열이 참조하고 있는 메모리 주소값과 문자열이 모두 동일할 때 true를 반환하므로, 문자열만을 비교하고 싶을 때에는 equals()를 사용해주어야 한다.

복합 대입 연산자

기본 대입 연산자 = 외에 복합 대입 연산자가 있다.

만약 기존 1로 정해진 A에 A + 10을 할 경우 += 를 사용해 코드를 더욱 간결하게 작성해줄 수 있다.
+= -= *= /= %= 을 사용할 수 있다.

		int result = 0;
		System.out.println("result = 0 : " + result);
	
//		result = result + 10
		result += 10;
		System.out.println("result += 10 : " + result); // 10
		
//		result = result - 5;
		result -= 5;
		System.out.println("result -= 5 : " + result); // 5

복합 대입 연산자는 누적합으로 응용 해줄 수 있는데 이는 많은 양의 문자, 숫자 등을 더할 경우 코드를 간결하게 보일 수 있도록 할 수 있다.

String str = "A";
str += "B";
str += "C";
str += "D";
System.out.println(str); // ABCD

3. 3항 연산자

3항 연산자는 항이 3개 인 경우이다.
조건이 true면 A, false면 B 값이 대입된다.

물음표를 기준으로 왼쪽의 조건이 참이면 첫 번째 값을 넣고, 아니면 두 번째 값을 넣어주는 것이다.

int score = 85;
char grade = score > 90? 'A' : 'B'; // B

코드를 읽어보면 먼저 ? 앞에 있는 조건을 물어보는 것이다.
위에 코드에서 예시를 들면 score가 90보다 커? 라고 물어보고 만약 크다면 A 작다면 B 가 grade에 들어가게 된다.

2개의 선택지가 아닌 더 많은 선택지를 추가해주는 것도 가능하다.

int score = 85;
char grade = score > 90 ? 'A' : score > 80 ? 'B' : 'C';

만약 더 많은 선택지를 주고 싶을 경우 동일한 방법으로 계속해서 추가하는 것이 가능하지만 통상적으로 3개 이상의 조건을 주는 경우는 if문으로 작성하는 것이 좋다.

profile
개발자가 되어보자

0개의 댓글