본문 바로가기

항해99

23.08.15 항해 99 16기 프로그래밍 기초1 2일차

어제보다 더 심화된 과정을 들었다

기초 과정이라는데... 너무 어렵다.. 세상에... 

뒤로 갈수록 어려워 질꺼 같은데

과연 이것들을 내것으로 만들 수 있을까?

 

주요 강의 내용

* 연산자

* if, switch, for, while, break, continue

* 반복문

* 배열

* 복사

* 컬렉션

 

피연산자 계산의 대상이 되는 것 (숫자)

 

연산자 계산의 목적이 되는 것

            산술연산자 +, -, *, /, %(나머지), <<, >>

            비교연산자 >, <, >=, <=. ==, !=(좌우가 동일하지 않다)

            논리연산자 &&(그리고) 모두 true 여야 true

                               ||(또는) 하나라도 ture 이면 true

                               !() 부정 true 일 때 false, false 일 때 true

            대입연산자 =, ++, --

            기타연산자

              1) 형변환 연산자

              2) 삼향 연산자

              3) instance of

 

연산자의 우선순위 산술 > 비교 > 논리 > 대입

                               연산자 여러개가 함께 있는 연산을 계산할때는 우선순위가 있다

                               위 우선순위에 따라 최종적 응답값이 결정된다

                               단, 괄호로 감싸주면 괄호안의 연산이 최우선순위로 계산됨

 

산술연산시 타입일치 연산전에 두 피연산자의 타입이 다른 경우 타입을 일치시킴

                                   두 피연산자의 타입을 같게 일치 시킴 (둘중 저장공간 크기가 더 큰 타입으로 일치)

                                     - 피연산자의 타입이 ‘int’ 보다 작은 ‘short’ 타입이면 ‘int’ 로 변환

                                     - 피연산자의 타입이 ‘long’ 보다 작은 ‘int’, ‘short’ 타입이면 ‘long’ 으로 변환

                                     - 피연산자의 타입이 ‘float’ 보다 작은 ‘long’, ‘int’, ‘short’ 타입이면 ‘float’ 로 변환

                                     - 피연산자의 타입이 ‘double’ 보다 작은 ‘float’, ‘long’, ‘int’, ‘short’ 타입이면 ‘double’ 로 변환

                                     - 이처럼, 변수 여러개를 연산했을 때 결과값은 표현 범위가 가장 큰 변수타입을 가지게 됨

 

비트 연산 Byte8 등분한게 Bit

                Bit0, 1 둘중의 하나의 값만을 저장하는 컴퓨터가 저장(표현) 가능한 가장 작은 단위

                컴퓨터의 가장 작은 단위 이므로 가장 연산이 빠름

                0, 1 값으로 산술연산을 하거나, 비교연산이 가능하나 자리수를 옮길 수 있음

                Bit의 자리수를 옴기는 것을 비트 연산이라함

                ‘<<’ (왼쪽으로 자리수 옮기기), ‘>>’(오른쪽으로 자리수 옮기기)

                0, 12진수이기에

                  - 자리수를 왼쪽으로 옮기는 횟수의 2의 배수로 곱셈이 연산되는 것과 동일

                    예) 0101 (5) << 1010 (10)

                  - 자리수를 오른쪽으로 옮기는 횟수의 2의 배소루 나눗셈이 연산되는 것과 동일

                    예) 1010 (10) >> 0101 (5)

 

조건문 물이 끓으면 강불에서 약불로 줄여주세요에서

           “물이 끓으면 조건을 만족하면 약불로 줄이는 연산을 수행

1) if 특정 조건에 따라 다른 연산을 수행하고 싶을 때

             if () {} 기본문법 값이 true인 경우 실행이 됨

2) if else else {} 기본문법 값이 false 인 경우 실행이 됨

3) swich case 문과 함께 사용하며 if문보다 가독성이 좋은 조건문임 break를 꼭 넣어야함

4) if 문과 swich 문차이

    - 복합 조건이 다름 if문은 ()안에 조건 여러개를 넣어 수행 가능 swich문은 피연산자 한 개에 대한 조건만 지원

    - 코드 중복 if문은 코드중복이 많고 swich문은 코드 중복이 적다

 

반복문 하얗게 색이 변하기 전까지 계속 저어주세요

            “하얗게 색이 변하기전 조건이 만족할 동안 저어주세요 연산을 반복

1) for 특정 조건에 따라 연산을 반복해서 수행하고 싶을 때 사용 끊지 않을 때 까지 계속해서->

              잘못하면 영원히 수행됨 무한루프

              for (초기값 ; 조건문 ; 증가연산) {(연산)}

2) while 특정 조건에 따라 연산을 반복해서 수행하고 싶을 때 다만 초기값 없이 조건문만 명시하여 반복

              while (조건문) {(연산)}

3) do-while do 이후 while을 실행

                         do {}while()

 

배열(분류통) 여러개의 변수를 한꺼번에 저장하고 관리하고자 할 때 사용 자료구조라는 이름으로도 사용함

1) 선언 int1개의 값만 변수에 저장할수 있으나 int[]와 같은 경우 여러개의 변수를 저장가능

int [] intArray 정수배열

long [] longArray

double [] doubleArray 실수배열

char [] charArray 문자배열

String [] StringArray 문자열배열

 

int intarray[] 정수배열

long longArray[]

double doubleArray[] 실수배열

char charArray[] 문자배열

String StringArray[] 문자열배열

 

2) 생성 new 명령어로 분류통에 몇 개를 담을지 미리 정의 각 타입별 초기값으로 초기화 됨

            예) int0, booleanfalse, Stringnull

 

3) 순회 배열의 값을 하나씩 뽑아서 조회

 

length 길이를 구하는 메서드

 

배열 복사

1) 얕은 복사 주소값만 복사되고 실제값은 1개로 유지됨

2) 깊은 복사 for문을 통해서 하나씩 꺼내어 복사해주는 방법

                     clone을 이용하는 방법 다만 2차원 이상 배열에선 얕은 복사로 동작함 배열로 이루어진 배열이 2차원 이상

                     배열

 

다차원 배열

1) 2차원 배열 int[] [] array, int array[] [], int[] array[]

  

컬렉션 배열보다 다수의 참조형 데이터를 더 쉽고 효과적으로 처리할 수 있는 기능이 있다

            크기 자동조정 / 추가 / 수정 / 삭제 / 반복 / 순회 / 필터 / 포함 확인등....

            참조형 변수를 저장함

            int의 참조형 변수 = Integer

            long의 참조형변수 = Long

            double의 참조형 변수 = Double

            String은 원래 참조형 변수

 

1) List 순서가 있는 데이터의 집합(중복허용) 배열과 비슷

2) Queue 빨대처럼 한쪽에서 데이터를 넣고 반대쪽에서 데이터를 뺄 수 있는 집합 FIFO 구조라고함

3) Stack 수직으로 쌇아놓고, 넣었다가 뺀다 FILO(basket)

4) Set 순서가 없는 데이터의 집합(중복허용 안함) 순서없고 중복없는 배열

5) Map 순서가 없는 (key, value) 쌍으로 이루어진 데이터의 집합 (key값 중복허용 안함) keyvalue를 찾음