수업기록

비트 단위 연산자 +

쉬프트 연산자 : 사용자가 원하는 수만큼 전체 비트를 이동시키는 연산자. << (왼쪽 쉬프트 연산자) >>(오른쪽 쉬프트 연산자)

0000 1010 <<2 == 0010 1000

N << B = N * (2^B) N>>B = N/(2^B) :: 몫으로

호너의 법칙 다항식을 프로그래밍 기법으로 표현하는 방법. 연산이 진짜 빠를 수밖에.

그런데, 시프트 연산을 했을 경우의 문제점이 있음. char a = 10 a <<4 가 되면 160이 출력됨

그런데!! char 은 -128~127까지이기 때문에 오버플로우가 일어남.

또한 양수인 경우에는 채워지는 비트가 0이지만, 음수라면 1로 채워진다.


증감 연산자 : 기존의 데이터 값을 하나 증가시키거나, 감소시키는 용도 ++ , —

후위,전위 연산 전위/전치 연산자 (속도가 조금 더 빠름. 후치보다) ++a 선 연산 후 대입

후위/후치 연산자 a++ 선 대입 후 연산

후위 연산자는 중복 연산 불가 (i++)++ 컴파일 에러. i++는 대입후 연산이 되기 때문에 Lvalue 즉, 리터럴 상수가 됨. 따라서 이후 연산이 불가능.


축약 연산자 : 연산자의 형태를 생략. 자기 자신의 값을 연산자를 통하여 가공하고자 할 때 사용. += -= /= < >>= %=


삼항 연산자 : 피연산자가 3개인 연산자. 조건식 ? 참인 경우 실행콛 : 거짓일 떄 실행 코드;


분기문

goto : 코트의 흐름을 내가 원하는 곳으로 이동시킬 수 있는 문법. 그런데 스파게티 코드를 만들게 되니까 걍 쓰지마라.

if문 : 조건이 참인 경우 실행하는 코드

if(조건식1){코드 몸체A}else if(조건식2 ){코드 몸체B}else{코드 몸체C} if(조건식1){코드 몸체A}else{if(조건식2){코드 몸체B}else{코드 몸체C}}

이렇기에 if와 else if의 조건이 겹치더라도, if가 충족되면 이후 else if를 신경쓰지 않음.

if와 else는 메모리적으로는 독립적인 공간을 가지지만, 컴파일러 상에서는 하나의 흐름(대칭구조)으로 보고 있기에 if /else 사이에 무언가 다른 코드를 넣을 수 없음.

if( a<b && (a=100)){ cout<<a<<endl; }

이리면 a는 100이 됨.

if( a<b || (a=100)){ cout<<a<<endl; } 이러면 a 는 10이 됨. 왜냐면 1번째 조건이 참이되면 이후것을 볼 필요가 없기 때문.

switch문 : 상수 조건 분기문. 정수만 취급하며 실수값으로 분기가 불가능 리터럴 상수 / 심볼릭 상수 둘다 괜찮음.

switch문은 조건이 부합한 case 이후로 모두 실행하게 됨. 그렇기 때문에 case이후 break를 넣어주어야 함.

만약 switch 문에서 정해주지 않은 조건을 입력하게 되면. 즉 1,2,3으로 케이스를 잡았는데 4를 넣었다면 값이 있기에 분기문이 실행이 되었지만 메시지 처리 대상을 탐새가고 있기 때문에 프로그램이 멈추게 됨.

그렇기에 꼭 default를 써라!

case 안에 case의 지역변수를 사용하고 싶으면 {중괄호}를 사용해라. 대신 break는 중괄호 밖에.


반복문 : for, do while ,while

for문

-무한루프를 전제로-

while 문

dowhile문

숙제 25-02-18 구구단 25-02-18 자판기 25-02-18_학점 출력기