-
<Java> Operator( 연산자 )Java 2023. 8. 24. 00:22
이번 포스팅은 java의 연산자에 관한 포스팅입니다..
연산자 (Operator) 정의
- 연산자란 프로그램에서 데이터를 처리하여 결과를 산출하는 것을 연산(operation)이라 칭한다.
- 연산에 사용되는 표시나 기호를 연산자(operator)라고 한다.
- 연산되는 데이터는 피연산자(operand)라고 한다.ex) 산술연산( +, -, *, /, % ) 등
우선 처음으로는 산술 연산자에 대해 알아보겠습니다.
산술 연산자 설명 + 왼쪽의 피연산자에 오른쪽의 피연산자를 더함 - 왼쪽의 피연산자에서 오른쪽의 피연산자를 뺌. * 왼쪽의 피연산자에 오른쪽의 피연산자를 곱함. / 왼쪽의 피연산자에 오른쪽의 피연산자를 곱함 % 왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후, 그 나머지를 반환함. 예제 int a = 20; int b = 10; int c; c = a + b; System.out.println(c); // 20 c = a - b; System.out.println(c); // 10 c= a * b; System.out.println(c); // 200 c = a / b; System.out.println(c); // 2 c = a % b; System.out.println(c); // 0
- / (나눗셈) 과 % (나머지) 가 헷갈리니 주의해서 사용하자.
증감 연산자
- 피연산자의 앞 또는 뒤에 붙어 값을 1씩 증가시키거나 감소시킨다
- 뒤에 붙으면 후행 연산자로 다음 번에 실행 될 때 1 씩 증가 된다.
- 앞에 붙으면 선행 연산자로 찍히는 당시 바로 + 1 이된 값이 출력된다.
증감 연산자 설명 ++(postfix), --(postfix) 후행 연산자로 다음 번에 실행 될 때 1 씩 증가 된다. (prefix)++ ,.(prefix) -- 선행 연산자로 찍히는 당시 바로 + 1 이된 값이 출력된다. ex)
// 증감 연산 ++, -- int val; val = 10; System.out.println(val); // 10 System.out.println(++val); // 11 여기서 바로 1 증가 후 출력 System.out.println(val); // 11 val = 10; System.out.println(val); // 10 System.out.println(val++); //우선 여기선 10 출력 후 1 증가 저장만 System.out.println(val); //11 , 1 저장된 걸 출력 val = 10; System.out.println(val); // 10 System.out.println(--val); // 9 System.out.println(val); // 9 val = 10 ; System.out.println(val); // 10 System.out.println(val--); // 10 System.out.println(val); // 9
은행 대기번호 표로 가볍게 예시를 보여주겠습니다.
// 은행 대기번호 표 int waiting =0; System.out.println("대기 인원 : "+ waiting++ ); // 대기인원 0명 System.out.println("대기 인원 : "+ waiting++ );// 대기인원 1명 System.out.println("대기 인원 : "+ waiting++ ); // 대기인원 2명 System.out.println("총 대기 인원 : "+ waiting ); // 총 대기인원 3명
복합 대입 연산자
증감 연산자 설명 += 두 항의 값을 더해서 왼쪽 항에 대입 -= 왼쪽 항에서 오른쪽 항을 빼서 그 값을 왼쪽 항에 대입 *= 두 항의 값을 곱해서 왼쪽 항에 대입 /= 왼쪽 항을 오른쪽 항으로 나누어 그 몫을 왼쪽 항에 대입 %= 왼쪽 항을 오른쪽 항으로 나누어 그 나머지를 왼쪽 항에 대입 ex)
// 복합 대입 연산자 int num = 10; num += 2; // num = num +2 와 같다. System.out.println(num); num -= 2; // num = num - 2 와 같다. System.out.println(num); num *= 2; //num = num * 2 와 같다. System.out.println(num); num /= 2; //num = num / 2 와 같다. System.out.println(num); num %= 2; //num = num % 2 와 같다. System.out.println(num);
비교 연산자
비교 연산자 설명 > 완쪽 값이 오른쪽보다 크다 >= 완쪽 값이 오른쪽보다 크거나 같다 < 완쪽 값이 오른쪽보다작다 <= 완쪽 값이 오른쪽보다 작거나 같다 == 완쪽 값이 오른쪽과 같다 != 완쪽 값이 오른쪽과 다르다 ex)
// 비교 연산자 System.out.println(5 > 3); // 5는 3보다 크다( 참이면 true ,거짓이면 false 출력 ) System.out.println(5 >= 3); //5가 3보다 크거나 같다 확인.(ture) System.out.println(5 >= 5); //5가 5보다 크거나 같다 확인. (true) System.out.println(5 >= 7); //5가 7보다 크거나 같다 확인. (false) System.out.println(5 < 3); // 5는 3 다 작다( false ) System.out.println(5 <= 3); // 5는 3보다 작거나 같다 (false) System.out.println(5 == 5); //왼쪽 값과 오른 쪽값이 똑같은지 확인 (true) System.out.println(5 == 3); //왼쪽 값과 오른 쪽값이 똑같은지 확인 (false) System.out.println(5 != 5); //왼쪽 값과 오른 쪽값이 같지 않은지 확인 (false) System.out.println(5 != 3); //왼쪽 값과 오른 쪽값이 같지 않은지 확인 (true)
논리 연산자
논리 연산자 설명 || OR (둘 중하나라도 맞으면 true) && AND (둘 다 일치해야 true 하나라도 틀리면 false) ex)
// 논리 연산자 boolean 김치찌게 = false; boolean 계란말이 = false; boolean 제육볶음 = true; System.out.println(김치찌게 ||계란말이 || 제육볶음); // ||는 or을 표현함 (하나라도 true 이면 true 출력 System.out.println(김치찌게 && 계란말이 && 제육볶음); // &&는 and 를 표현함 (하나라도 false 이면 모두 false) // and 연산 System.out.println((5 > 3) && (3 > 1));// 두 식이 모두 true 이어야 true System.out.println((5 > 3) && (3 < 1)); // false // or 연산 System.out.println((5 > 3) || (3 > 1)); // 둘 다 만족하면 true System.out.println((5 > 3) || (3 < 1)); // 둘 중 하나만 만족하면 true System.out.println((5 < 3) || (3 < 1)); // 둘 다 만족 하지 않으면 false // System.out.println(1 < 3 < 5); 불가능 System.out.println(1 < 3 && 3 < 5); //가능 괄호 없어도 연산 가능 but, 가독성 때문에 괄호 치는 거 습관화하기 // 논리 부정 연산자 System.out.println(!true); // false System.out.println(!false); // true System.out.println(!(5 == 5)); // true 의 반대인 false 반환 System.out.println(!(5 == 3)); // false 의 반대인 true 반환
삼항 연산자
조건문인 if 문을 사용하여 코딩을 할 경우 코드 라인이 의미 없이 길어지는 경우들이 종종 생겨
코드가 의미없이 복잡해지는 경우가 있습니다
이럴 때 삼항 연산자를 이용하면 코드의 라인수 확 줄어듭니다
우선 식을 보여드리겠습니다.
int max = (x > y) ? x : y;
위에 식을 설명하자면 아래와 같습니다.
식 : 결과 = (조건) ? (참의 경우 결과값) : (거짓의 경우 결과값)
ex)
// 삼항 연산자 // 식 : 결과 = (조건) ? (참의 경우 결과값) : (거짓의 경우 결과값) int x =5; int y =3; int max = (x > y) ? x : y; System.out.println(max); // 5 int min = (x < y) ? x : y; System.out.println(min); // 3 boolean b = (x == y) ? true : false; System.out.println(b); String s = (x != y ) ? "달라요" : "같아요"; System.out.println(s);
연산자의 우선순위(operator precedence)
연산자의 우선순위는 수식 내에 여러 연산자가 함께 등장할 때, 어느 연산자가 먼저 처리될 것인가를 결정합니다
자바 연산자의 우선순위표
우선순위도 연산자 높음
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
V
낮음++(postfix), --(postfix) +(양수부호) , - (음수부호), (prefix)++ ,.(prefix) -- 형변환 ( type casting) * , / , % +(덧셈) , - (뺼셈) << , >>, >>> (비트단위 쉬프트 연산자) <> , <= , >= , instanceof (관계 연산자) &(비트 AND) ^ (비트 XOR) &&( 논리 AND) || (논리 OR) ?: (조건) =, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>= ( 대입연산자, 할당 연산자)
마지막으로 간단한 Quiz를 내보며 이번 포스팅을 끝마치겠습니다.
QUIZ (출처: 인프런 나도코딩)
어린이 키에 따른 놀이 기구 탑승 가능 여부를 확인하는 프로그램을 작성하시오.
조건 )
- 키가 120 cm 이상인 경우에만 탑승 가능
- 삼항 연산자 이용
- 실행결과
실행결과 << Answer >>
더보기public class _Quiz_02 { public static void main(String[] args) { int tall = 115; String s = (tall >= 120) ? "키가 " + tall +"cm 이므로 탑승 가능합니다" : "키가 " + tall +"cm 이므로 탑승 불가능합니다"; System.out.println(s); tall = 121; String d = (tall >= 120) ? "키가 " + tall +"cm 이므로 탑승 가능합니다" : "키가 " + tall +"cm 이므로 탑승 불가능합니다"; System.out.println(d); } }
'Java' 카테고리의 다른 글
< Java > String (0) 2023.08.25 <Java> Stream Optional (0) 2023.08.25 < Java > Stream (0) 2023.08.25 < Java > lamda (0) 2023.08.24 <Java> 자료형과 변수 (0) 2023.08.23