2 minute read

C++ 3강

scanf(); 는 입력을 받기 전까지 뒤 코드들을 실행하지 않고 대기함!

1. 상수 사용하기

const(constant) : 변하지 않는 값 (ex 전화번호부의 지역번호 설정처럼)

리터럴은 추후에 사용이 적다.

<상수의 설정="">

const {자료형} {상수명} = {값};

상수명은 모두 대문자, 띄어쓰기는 _ ex)CODE_SEOUL

아두이노, 라즈베리파이같은 임베디드 분야에는 const가 중요하고 첫줄부터 몇백개 있다.

“%02d” = padStart(2, ‘0’) : 정수d를 뒤로 2칸, 그 사이에는 0으로 채움.

1
2
3
    float num3;
    num3 =  7 / 2;
    printf("%f", num3);
cs

출력값 : 3.0 //왜 3.5(f)가 아닌가?

​ 7 / 2; 의 7과 2부터 이미 정수로 판단함. 그럼 3.5를 받으려면 어떻게 해?

​ case1) 7.0 / 2.0; 이건 실수인 수라고 애초에 설정.

​ case2) (float)7 / (float)2;

​ case3) 7 / 2.0; float은 integer보다 큰 개념이기 때문에 출력값도 float형식을 따름

​ * (float)(7 / 2)는 7 / 2의 정수형 값3 이 나왔는데 float 뭐? 🤷‍♂️

<변수의 계산="">

변수 값 누적, 감소

num1 += 2; = num1 = num1 + 2 ;

case1)

1
2
3
4
int num1 = 1;
printf("%d\n",num1++);
printf("%d\n",++num1);
printf("%d\n",num1);
cs

출력값: 1, 3, 3

​ 1열) ++는 num1 뒤에 있으므로 %d에 먼저 num1을 넣고 이후에 ++계산이 되어 num1은 2로 저장됨.

​ 2열) ++가 앞에서 기존 num1(2)에 +1을 해줌.

​ 3열) 최종 num1은 3.

변수 값 곱셈과 나눗셈

case2)

1
num1 = 1 / 0;
cs
❗컴파일러 에러가 난다.

2. 조건문

if

  • if문에서 실행코드가 한 줄일때에는 중괄호 생략가능.
1
2
if(1 == 10
    실행문;
cs
보통 if 문에서 같지 않다를 사용하지 않고, 다른 코드로 다시 작성하는데 가독성이 좋기 때문.

switch - case문

switch case는 python부터 없어졌다. switch - case문은 알아두기만 하자.

오늘 수업 전 예습노트

1. 조건문 (Conditional Statement)

연산자

x   y : or

​ 👉x y 두 조건 중 하나만 충족하여야 true

x && y : and

​ 👉x y 두 조건 모두 충족하여야 true

! = : not

else if VS else

else if ( ) { } :

​ 위 조건이 아니라면 이 조건()은? 그다음 else if 조건()은? 모든 조건에 a는?b는?c는?d는?…. else if를 다 붙여줄 수 없으므로 else 사용.

else { } : 맨 마지막 else는 조건이 필요X. 위의 아무 조건도 충족하지 않으면 실행.

조건문( ) 안에서 두 식을 이어서 (0 < a < 10) 쓰는 것 X

👉 0 < a && 10 > a

1-1.If 문

1-2. switch 문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int a = 2;
switch(a){
    case 1 :
        printf("a는 1입니다.");
        break;
    case 2 :
        printf("a는 2입니다.");
        break;
    case 3 :
        printf("a는 3입니다.");
        break;
    default;
        printf("모든 케이스에 맞지 않았습니다.");
}
cs
</div 출력 값 : "a 는 2입니다." **매 case의 마지막엔 break;(흐름제어)를 잡아주야 case 조건에 충족될 시 해당 case에서 멈춤** **default; = else** ## ### 2. 반복문 반복문에는 총 3가지 종류가 있다. - for - while - do while ### 2-1 for
1
2
3
for(i = 0, i < 100, i++){
    실행문;
}
cs
**i = 0** : 시작값을 initialize 해주기 **i < 100** : 종결조건, 이 조건이 true가 나온다면 loop안으로 (다시) 들어가라 **i ++** : 조건에 맞아서 loop 돌렸는데 어디로? => i ++ ​ = **i = i + 1** ​ **i + = 1** 이렇게 loop가 한번 도는 것을 iteration이라고 함. 그게 i인 이유. 1. 루프의 초기값 2. 종결 컨디션 3. 내용을 실행 4. iteration value에 대해 어떤 연산을 할 것인지 ##### for loop는 언제 끝나는지 명확하게 알 때 사용하는게 자연스럽다. 물론, for( ,check, ) 와 같이 중간 컨디션 check를 사용해서 실행해도 가능하긴 함 ### 2-2 while
1
2
3
4
5
6
= 1;
while(종결조건){
    내용;
 
    i++
}
cs
종결 조건이 true이면 내용; 실행, 조건에서 숫자는 0이 아닌이상 모두 true값을 가진다. 루프 초기값을 위로 빼주어 for문 에서의 불필요한 메모리 낭비를 없앰, 종결조건과 내용의 가독성, 중요도↑ while은 언제 끝나는지 모를때, 언제 끝나는지 알려주는 횟수보단 특정 종결되는 상황이 있을 때 쓰는 것이 자연스럽다. (ex 유저들의 회원가입시 아이디 중복검사) ### 2-3 do while
1
2
3
4
5
= 0;
do { 
    실행문;
    i++;
while(i < 10)
cs
: do실행문 먼저 do! 그리고 while을 돌려~ ### 2-4 반복문에서의 흐름제어 loop 에서 자연스럽게 원하는대로 제어할 수 있게 해주는 - break; - continue; - goto; ex) 1~100 까지의 무작위 숫자를 뽑는 loop를 만들건데, 숫자 77이 나오면 멈추고 싶어!

Updated:

Leave a comment