프로그래밍 공부

2025.01.08 java 공부

3452 2025. 1. 8. 17:43

비트 연산자 : 개발자가 직접 비트를 조작할 수 있는 연산자이다.

 

종류 연산자 사용방법 설명
비트 AND & a & b 변수 a와 변수 b의 비트 단위의 AND
비트 OR | a | b 변수 a와 변수 b의 비트 단위의 OR
비트 XOR ^ a ^ b 변수 a와 변수 b의 비트 단위의 XOR
비트 NOT - -a 변수 a의 단위의 부정

 

비트 연산자를 이용해 연산 할 때에는 먼저 연산 할 대상을 2진수로 변경한다.

 

예) a = 15, b = 5;

 

a & b => 1111 & 0101

& : a와 b 두 쪽 모두 1인값 0101 => 5

출력값 : 5

 

a | b => 1111 | 0101

| : a와 b 둘중 하나라도 1인 값 1111 => 15

출력값 : 15

 

a ^ b => 1111 ^ 0101

^ : a와 b 둘의 값이 다른 값 1010 => 10

출력값 : 10

 

-a => 0000 0000 0000 0000 0000 0000 0000 1111(int 기준 32비트) => 1111 1111 1111 1111 1111 1111 1111 0001

- : a를 비트상의 값으로 나타낸 후, 0은 1로 1은 0으로 만들어 2의 보수 형태로 만든후 +1을 하여 나타낸다

출력값 : 1111 1111 1111 1111 1111 1111 1111 0001(int 32비트 기준)

 

 

기타 연산자 : 기본 연산자 외의 특정한 기능을 수행하는 연산자이다.

 

삼항 연산자

 

조건 ? 항목1 : 항목2

 

조건을 만족하면 항목1 만족하지 않으면 항목2의 결과를 반환한다.

 

age > 19 ? "성인" : "청소년" // age 변수값이 19를 초과하면 "성인" 19이하이면 "청소년"을 출력한다.

 

if else 문과 동일하게 작동하므로 간단하게 나타낼때 사용할 수 있다.

 

 

대입 연산자 : 값을 할당하는데 쓰이는 연산자로, 자주 사용하는 연산을 간결하게 코딩하기 위해 만들어졌다.

 

연산자 사용방법 설명 풀어쓴 형식
= a = 1 변수 a에 1을 대입 a = 1
+= a += 1 변수 a에 a 더하기 1 을 대입 a = a + 1
-= a -= 1 변수 a에 a 빼기 1 을 대입 a = a - 1
*= a *= 1 변수 a에 a 곱하기 1 을 대입 a = a * 1
/= a /= 1 변수 a에 a를 1로 나눈 값을 대입 a = a / 1
%= a %= 1 변수 a에 a를 1로 나눈 나머지를 대입 a = a % 1

 

=은 "같다"의 의미가 아닌 "대입"의 의미로 봐야한다. "같다"라는 의미는 자바에서 == 로 표현한다.

 

 

instanceof : 객체의 타입을 확인하는 연산자로서, 왼쪽의 참조변수를 오른쪽의 클래스 명에 형변환이 가능한지를 검사하는것이다.

 

예시)

class A{} // 최상위 클래스 A

class B extends A{} // 클래스 B는 최상위 클래스 A의 상속을 받는다.

 

A a = new A(); // A 클래스의 객체
B b = new B(); // B 클래스의 객체 일 때

 

a instanceof A 는 true이다.

b instanceof B 는 true이다.

a instanceof B 는 false이다.

b instanceof B 는 true 이다.

 

복잡하게 보여서 풀어 써보자면, A는 '동물' B는 '파충류' 라고 예를 들어보자

 

'사자'라는 객체는 '동물' 이라는 클래스에 속한다.

'악어'라는 객체도 '동물' 이라는 클래스에 속한다.

'사자'라는 객체는 '파충류'라는 클래스에는 속하지 않는다.

'악어'라는 객체는 '파충류'라는 클래스에 속한다.

 

즉 A가 B보다 더 상위 개념이기 때문에 B는 A에 속할수 있지만, A는 B에 속하지 않는다는 것이다.

 

 

if문 : 조건을 만족하면 수행할 작업과 만족하지 않을 때 수행할 작업을 미리 정해놓고, 조건에 따라 다르게 실행하도록 하는 제어문이다.

 

if(조건식)

실행부분 // 이 경우에는 조건을 만족하더라도 바로 밑의 실행부분 하나만 실행한다.

 

if(조건식) {

실행부분1

실행부분2 // 이 경우에는 조건을 만족하면 {}괄호속 모든 실행부분을 실행한다. 만족하지 않으면 무시한다.

}

 

if(조건식1) {

실행부분

} else if(조건식2) {

} 실행부분 // 조건식1을 만족하면 실행하고, 만족하지 않으면 조건식2를 만족하는지 보고, 만족하면 실행한다. 만족하지 않으면 무시한다.

 

if(조건식1) {

실행부분

} else if(조건식2) {

실행부분

} else {

실행부분 // 조건식1 => 조건식2 => else 순으로 조건에 맞는지 판단하고, 만족하면 바로 실행하고 만족하지 않으면 else문을 실행한다. 조건에 만족하여 실행되면 그 뒤의 조건식은 무시한다.

 

 

switch문 : 하나의 조건식으로 많은 경우의 수를 처리하는 조건문이다.

 

switch(조건식) {

case 값 1;

// 조건식 결과와 값1이 같은 경우 실행

break; 조건문 종료

 

case 값 2;

// 조건식 결과와 값 2가 같은 경우 실행

break; 조건문 종료

 

default; // 조건식의 결과와 일치하는 값이 없을 때 실행

}

 

switch문은 조건이 일치하면 실행되고, break;로 제어문을 종료시키기 때문에, break;를 쓰지 않으면 조건을 만족하더라도 모든 조건을 순회하며 조건에 부합하는지를 비교해본다. 이를 이용해서 일부러 break;를 쓰지 않을 수도 있다.

'프로그래밍 공부' 카테고리의 다른 글

2025.01.10 java 공부  (0) 2025.01.10
2025.01.09 java 공부  (0) 2025.01.09
2025.01.07 java 공부  (0) 2025.01.07
2025.01.06 java 공부  (0) 2025.01.06
2025.01.03 js 공부  (0) 2025.01.06