TIL

TIL - 2024/04/24

기석김 2024. 4. 24. 19:40

배운 내용 🏃 

 

연산자의 종류에는 뭐가 있을까??

사칙연산 외에도 여러 종류가 있다!

 

산술 연산자 + - * / % << >> 사칙 연산과 비트연산
비교 연산자 > < >= <= == != 크고 작음과 같고 다름을 비교
논리 연산자 && || ! 그리고(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 쓸때 리눅스 명령어도 안까먹게 잘 기억하고 팀 협업할때 민폐가 안되게 잘 숙지 해야겠다.