TIL - 2024/04/24
배운 내용 🏃
연산자의 종류에는 뭐가 있을까??
사칙연산 외에도 여러 종류가 있다!
산술 연산자 | + - * / % << >> | 사칙 연산과 비트연산 |
비교 연산자 | > < >= <= == != | 크고 작음과 같고 다름을 비교 |
논리 연산자 | && || ! | 그리고(AND)와 또는(OR) 으로 조건을 연결 |
대입 연산자 | = ++ —- | 우변의 값을 좌변에 저장, 연산 복합 대입 |
기타 연산자 | (type) ? : instance of | 형변환 연산자, 삼항 연산자, instance of 연산자 |
산술연산자
※ 사칙 연산 및 비트연산을 포함하고 , 사칙 연산을 계산한 결과값을 응답한다.
비교연산자
※ 값의 크고/작음을 비교하거나 같고/다름 을 비교하여 참(true)/거짓(false) 값인 boolean 값을 출력
※ > (크다) , < (작다), >= (크거나 같다), <= (작거나 같다), == (같다), != (다르다)
논리연산자
※ 비교 연산의 결과값으로 받을 수 있는 boolean 값을 연결하는 연산자
※ 조건을 연결 하였을때의 boolean 값들을 조합하여 참(true)/거짓(false) 값인 boolean 값을 출력
※ && (AND = 피연산자 모두 참), || (OR = 피연산자 둘중 하나라도 참), ! (피연산자의 반대 boolean 값)
대입 연산자
※ 변수를 바로 연산해서 그자리에서 저장하는 연산자
※ 기본 대입 연산자인 = 와 다른 연산을 함께쓰는 복합 대입 연산자가 있다. ( += , -= , *= …)
※ 복합 대입 연산자는 기본 대입 연산자를 심플하게 작성하게 해주는것이지 기능은 같다.
※ 추가로, += 1 는 ++ 과 동일 , 똑같이 -= 1 은 —- 와 동일
대입연산 중에 증감 연산자 쓸때 주의할점!
※ 매우 헷갈리니 잘 이해하기
연산자 | 연산자 위치 | 기능 | 연산 예 |
++ | ++{피연산자} | 연산 전에 피연산자에 1 더해줍니 다. | val = ++num; |
++ | {피연산자}++ | 연산 후에 피연산자에 1 더해줍니 다. | val = num++; |
— | —{피연산자} | 연산 전에 피연산자에 1 빼줍니다 | val = —num; |
— | {피연산자}— | 연산 후에 피연산자에 1 빼줍니다. | val = num—; |
기타 연산자
// 형변환 연산자
int intNumber = 93 + (int) 98.8; // 93 + 98
double doubleNumber = (double) 93 + 98.8; // 93.0 + 98.8
//괄호 안에 변환할 타입을 넣으면 피연산자의 타입이 변경 된다
// 삼항 연산자
//비교 연산의 결과값에 따라 응답할 값을 직접 지정할 수 있는 연산자
//삼항 연산자는 3가지 피연산자가 존재하여 삼항 연산자
// (조건) ? (참결과) : (거짓결과)
int x = 1;
int y = 9;
boolean b = (x == y) ? true : false;
System.out.println(b); // false
String s = (x != y) ? "정답" : "땡";
System.out.println(s); // 땡
int max = (x > y) ? x : y;
System.out.println(max); // 9
int min = (x < y) ? x : y;
System.out.println(min); // 1
연산자 우선순위 는 어떻게 될까?
• 연산자 우선순위 : 산술 > 비교 > 논리 > 대입
// 연산자 우선순위 코드
int x = 2;
int y = 9;
int z = 10;
boolean result = x < y && y < z; // <,> 비교연산자 계산 후 && 논리 연산자 계산
System.out.println(result); // true
result = x + 10 < y && y < z; // +10 산술연산자 계산 후 <,> 비교연산자 계산 후 && 논리 연산자 계산
System.out.println(result); // false
result = x + 2 * 3 > y; // 산술연산자 곱센 > 덧셈 순으로 계산 후 > 비교연산자 계산
System.out.println(result); // false (8>9)
result = (x + 2) * 3 > y; // 괄호안 덧셈 연산 후 괄호 밖 곱셈 계산 후 > 비교연산자 계산
System.out.println(result); // true (12>9)
산술변환
• 연산 전에 피연산자의 타입을 일치시키는 것( 두 피연산자의 타입을 같게 일치시킨다 )
예를들어 !
• 피연산자의 타입이 int 보다 작은 short 타입이면 int 로 변환
• 피연산자의 타입이 long 보다 작은 int , short 타입이면 Long 으로 변환
• 피연산자의 타입이 float 보다 작은 long , int , short 타입이면 float 으로 변환
• 피연산자의 타입이 double 보다 작은 float , long , int , short 타입이면 double 으로 변환
비트연산
• Bit 는 0,1 둘중의 하나의 값만을 저장하는 컴퓨터가 저장(표현)가능한 가장 작은 단위
• 가장작은 단위인 Bit이기 때문에 연산중에서 Bit 연산이 제일 빠르다 !
• Bit의 자리수를 옮기는 것을 비트 연산이다. << (왼쪽으로 자리수 옮기기), >> (오른쪽으로 자리수 옮기기)
• (꿀팁)! 0,1 은 2진수 값이기 때문에 , 자리수를 왼쪽으로 옮기는 횟수만큼 2의 배수로 곱셈이 연산되는것과 동일하다.
• 그러면 오른쪽은 반대로 옮기는 횟수만큼 2의 배수로 나눗셈이 연산되는것과 동일합니다
예시코드
// 비트 연산
// 참고, 3의 이진수값은 11(2) 입니다. 12의 이진수값은 1100(2) 입니다.
// (2) 표기는 이 숫자가 이진수값이라는 표식 입니다.
System.out.println(3 << 2);
// 3의 이진수값인 11(2) 에서 왼쪽으로 2번 옮겨져서 1100(2) 인 12값이 됩니다.
System.out.println(3 >> 1);
// 3의 이진수값인 11(2) 에서 오른쪽으로 1번 옮겨져서 1(2) 인 1 값이 됩니다.
Git & Github 기초에 대해 다시 공부하고 있다. 팀 협업에서 매우 중요하기 때문이다.
※ 아래 destkop에서 이름이 한글로 돼 있는데 영어로 바꿔주는게 좋다.
pwd(print working directory) 란?
• 현재 내가 작업하는 폴더(Users/developsoo)를 보여달라는 뜻( ~는 Home(홈) , 상위폴더 )
ls(list) 란?
• 내 폴더 안에 있는 폴더 & 파일 내역을 보여준
ls-a(listall) 란?
• 숨겨진 파일(보통 . 으로 시작함)도 모두 볼 수 있다
cd폴더명 (changedirectory) 란 ?
• Desktop 안에 있는 다른 폴더로 이동 가능하다 (폴더를 더블 클릭해서 들어간 것과 같음)
• cd .. 은 한 단계 위의 폴더로 이동이다 , html로 들어갔다가 다시 cd.. 으로 빠져나왔다
mkdir 폴더명 (makedirectory)
• 현재 경로에서 폴더를 생성하는 명령어 ( hello 생성)
touch파일명
• 현재 경로에서 파일을 생성하는 명령어
• 참고: 정확히는 파일의 생성과 파일의 날짜,시간을 변경하는 명령어
마무리 🔥
연산자가 너무 많아서 조금 헷갈렸다. 증감 연산자에서 이해하는데 조금 오래 걸렸다.
우선순위도 잘 기억해야 할거 같다
git 쓸때 리눅스 명령어도 안까먹게 잘 기억하고 팀 협업할때 민폐가 안되게 잘 숙지 해야겠다.