연산자와 제어문의 경우 JavaScript와 유사한 부분이 많아 다른 부분만 정리할 예정입니다! [JS] 연산자와 제어문(조건문, 반복문, 분기) 내용을 참고해주세요!
구분 | 연산기호 | 기능 | 결과 |
---|---|---|---|
산술 연산자 | + - * / % | 사칙연산 및 나머지 연산 | 값 |
증감 연산자 | ++ -- | 값이 1씩 증가 또는 감소 | |
비트 연산자 | & | ~ ^ | 비트 AND, OR, NOT, XOR | |
시프트 연산자 | >> << >>> | 비트 단위의 이동 | |
비교 연산자 | < > <= >= == != | 값의 크기 비교 | boolean |
논리 연산자 | && || ! ^ | 논리 AND, OR, NOT, XOR | |
대입 연산자 | = += -= *= /= &= |= >>= >>>= | 산숫 연산 결과의 대입 | 실행 |
삼항 연산자 | (조건문) ? x : y | 조건문이 참일 경우 x 실행, 거짓일 경우 y 실행 |
비트 단위 연산자로, 두 피연산자를 2진수로 변환 후 각 값끼리 비교하는 연산자 입니다.
2진수로 변환 후 비트 연산 후 나온 2진수를 10진수로 변환한 값이 반환됩니다.
AND(&)
: 두 값이 모두 1이어야만 1이며 나머지는 0입니다.OR(|)
: 두 값 중 하나만 1이어도 1이며 둘 다 0일 경우만 0입니다.XOR(^)
: 두 값이 서로 다른 경우만 1이며, 같을 경우는 0입니다.NOT(~)
: 0은 1로, 1은 0으로 반환합니다.💡 연산 예시
17 => 0001 0001 / 5 => 0101일 때 각 비트연산자를 사용할 경우 아래와 같습니다.
17 & 5
= 0001 => 1
17 | 5
= 0001 0101 => 21
17 ^ 5
= 0001 0100 => 20
~17
= 0000 1110 => 14
~5
= 0001 1010 => 26
비트의 위치를 좌우로 이동하는 연산자 입니다.
산술 시프트
<<
: 비트를 왼쪽으로 이동시킵니다.>>
: 비트를 오른쪽으로 이동시킵니다.논리 시프트
>>>
: 부호 비트를 포함해 전체 비트를 오른쪽으로 이동시킵니다.💡 연산 예시
17 => 0001 0001 일 때 각 시프트연산자를 사용할 경우 아래와 같습니다.
17 >> 2
= 0100 => 4
17 << 1
= 0010 0010 => 34
17 >>> 3
= 0010 => 2
XOR(^)
: 두 피연산자가 서로 다른 경우 true를 반환하고, 같을 경우 false를 반환합니다.💡 논리연산자 XOR과 비트연산자 XOR
논리 연산자 XOR과 비트 연산자 XOR은 둘다^
로 표시합니다. 해당 연산자는 피연산자로 들어온 값의 자료형에 따라 논리연산자 또는 비트 연산자로 사용됩니다.
정수형 ^ 정수형
: 비트연산자boolean ^ boolean
: 논리연산자
종류 | 구문 | 내용 |
---|---|---|
조건문 | if | 조건에 따라 true일 경우 명령문을 실행합니다. |
else if | if 조건절 체크 후 false일경우 해당 else if 조건 체크 후 true일 경우 명령문 실행합니다. | |
else | 모든 if, else if 절이 false일 경우 명령문을 실행합니다. | |
switch | 표현식이 case절과 일치할 경우 해당 하위절을 실행합니다. | |
-- | -- | -- |
반복문 | for | 일정 횟수 반복을 설정하여 반복하여 명령문을 실행합니다. |
while | 조건이 충족될 동안 반복하여 명령문을 실행합니다. | |
do ~ while | 일단 한번 실행 후 조건이 충족될 동안 반복하여 명령문을 실행합니다. | |
-- | -- | -- |
분기 | break | break문을 만날 경우 가장 가까운 if문을 제외한 가장 가까운{} 를 탈출합니다. |
continue | continue문을 만날 경우 실행하고있던 코드가 남아있더라도 다음 반복을 진행합니다. |
break
또는 continue
에서 레이블을 이용 시 break로 다중 반복문을 한번에 빠져나오거나, continue로 여러개의 반복문을 건너띌 수 있습니다.
레이블명:
for(int i = 0; i < 10; i++) {
for(int j = 0; j < 10; j++) {
if(j == 3) {break 레이블명;}
System.out.println("내용~~");
}
}
위 코드를 해석하면, break문을 만나면 레이블명이 있는 영역까지 탈출할 수 있게 됩니다.
레이블명:
for(int i = 0; i < 10; i++) {
for(int j = 0; j < 10; j++) {
if(j == 3) {continue 레이블명;}
System.out.println("내용~~");
}
}
continue문도 동일하게 다시 다음 반복을 진행할 반복문 앞에 레이블명을 작성 시 해당 반복문으로 진행되게 작성할 수 있습니다.
Do it! 진짜 개발자가 되는 Java 프로그램 입분서 자바 완전 정복 - 김동형
위 책을 공부하며 작성하고 있습니다!