The Debugging Chronicles : "코드의 미학"
Mentor JAVA - section03. 연산자 본문
01. 연선자의 종류
1. 연산
데이터를 처리하고 결과를 산출하는 작업
항 operand
연산에 사용되는 값
연산자 operator
기호
연산식 experssion
항과 연산자를 이용해 연산 과정을 나열한것
2. 기본 연산자의 종류
연산자의 분류 | 종류 | 연산자 | 기능 |
단항 (피연산자 개수가 1개인 연산자) |
부호 | +,-,*,/,% | 사칙연산, 나머지 계산 |
증감 | ++,-- | 음수 양수 부호 | |
논리 | | | 논리 부정 | |
이항 (피연산자 개수가 2개인 연산자) |
논리 | &,|,&&,|| | 논리곱, 논리합 |
문자열 | + | 문자열 연결 | |
대입 | =,+=,=+,*=,/=,%= | 우변의 값을 좌변에 대입 | |
비교 | ==,!=,>,<,>=,<=,instanceof | 값을 비교 | |
삼항 (피연산자 개수가 3개인 연산자) |
조건식 | 조건식?A : B | 조건식 결과에 따라 A,B선택 |
02. 연산자 우선순위와 연산 방향
연산자 우선순위 정리
- 단항, 이항, 삼항 연산자 순으로 우선 순위를 가진다
-이항 연산자는 산술,비교,논리,대입 연산자 순으로 우선순위를 가진다
- 단항과 대입 연산자를 제외한 모든 연산의 진행방향은 왼쪽에서 오른쪽이다
- 복잡한 연산싱은 괄호()를 사용해 우선순위를 정한다.
03. 단항 연산자
1. 부호 연산자 + , -
2. 증감 연산자 ++, --
package seciton03;
public class EX03_05{
public static void main(String[] args){
int num = 30;
System.out.println(++num); //num(=30)에서 +1이 더해져서 31출력
System.out.println(num); //31출력
System.out.println(num++); // num(=31)이 먼저 출력된 후 32로 증가
System.out.println(num); //32출력
}
}
연산자 순서 | 내용 |
증감 연산자가 피연산자 앞에 위치 (전위형) ++num , -- num |
1이 먼저 증감되고 코드에 즉시 반영되어 실행 |
증감 연산자가 피연산자 뒤에 위치(후위형) num++,num-- |
코드가 먼저 실행되고 1이 증감 즉, 다음 코드부터 증감된 값을 반영 |
문자형 char 형에도 적용 가능
package seciton03;
public class EX03_07{
public static void main(String[] args){
char alphabetX = 'X'; // 유니코드 정수 88로 저장되어 'X'와 매핑
System.out.println(alphabetX++); // x -> alphabetX가 출력된 후, 88+1=89됨
System.out.println(alphabetX); //Y -> 89와 매핑된 'Y'가 출력
}
}
3. 논리 부정 연산자 !
04. 이항 연산자
1. 산술 연산자 + , - , * , / , %
연산자 | 연산 작업 | 사용 방법 | 설명 |
+ | 뎃셈(addition) | a+b | a와 b를 더한다 |
- | 뺄셈 | a-b | a에서 b를 뺀다 |
* | 곱셈 | a * b | a와 b를 곱한다 |
/ | 나눗셈 몫 | a/b | a를 b로 나눈다 |
% | 나눗셈 나머지 | a%b | a를 b로 나눈 나머지 값 |
고려사항
- 피연산자의 자료형이 일치하지 않을 경우 크기가 큰 자료형으로 자동 형 변환이 일어난 후 연산을 수행합니다.
-연산의 결과값이 산출 자료형의 표현 범위 안에 있어야 합니다. 그렇지 않으면 오버플로우가 발생하거나 쓰레기 값이 입력됩니다.
2. 대입 연산자 = ,+=, -=,*=,/=,%=
오른쪽 피연산자의 값을 왼쪽 피연산자에 저장
3. 관계 연산자 <, <=, >, >=, ==, !
- 관계 연산자는 2개 이상 연속으로 사용할 수 없다.
- 관계 연산자의 연산 방향은 왼쪽에서 오른쪽이다. 기본 형태 자체가 관계 연산자를 기준으로 왼쪽 오른쪽의 피연산자를 비교한 후 결과값을 반환한다. 만약 A<=B== C같이 연속으로 작성하게 되면, A<=B의 연산에 대한 결과를 확인하고 바로 결과값을 반환해 버리기 때문에, C는 연산의 대상 조차 될 수 없다.
4. 논리 연산자 &&,||,&,|,^,!
연산자 | 논리식 | 연산 내용 |
&& 또는 & | 논리곱(AND) | 두 항이 모두 true일 때만 true 나머지는 false |
|| 또는 | | 논리합(OR) | 두항 중 하나라도 true면 true, 모두 false면 false |
^ | 배타적 논리합(XOR) | 두 항이 다른 값이면 true,같으면 false |
! | NOT | 논리식이 true면 false , fasle면 true로 바꿔서 출력 |
05. 삼항 연산자
조건식 ? 피연산자1: 피연산자2
조건식의 결과가 true면 '피연산1' 이실행되며, false면 '피연산자2'가 실행
'JAVA > Mentor JAVA' 카테고리의 다른 글
Mentor JAVA - section06. 배열 (0) | 2024.07.17 |
---|---|
Mentor JAVA - section05. 제어문-2 (0) | 2024.07.16 |
Mentor JAVA - section04. 제어문-1 (0) | 2024.07.15 |
Mentor JAVA - section02. 변수와 자료형 (0) | 2024.07.13 |
Mentor JAVA - section01. 자바 프로그래밍의 기본 (0) | 2024.07.12 |