본문 바로가기
관/솔직한 c 언어 공부

c언어 기초 공부 05.

by 4차원 박스 2019. 11. 5.

오늘할 기초공부가

앞으로 끊임없이 사용될 종류이다

가장가장 많이 사용되고 구상되는 기본이되니

익혀둔다

 

조건문과 반복문을 살펴본다.

 

 

switch 문

조건에 들어가는값에 따라서 케이스가 정해진다
그 케이스를 실행한후 끝내야한다
이때 break; 를 사용하여 switch 문을 빠져나간다.
만약 어느 케이스에도 해당하지 않으면 default 문을 실행한다.

조건식에서 사용되는 자료형과 케이스의 이름(이름의 자료형) 이 일치해야 한다.

break 와 반대대는 continue 문도 있다.
컨티뉴는 반복문에 사용되어서
그 다음의 반복문을 실행하여라 라는 의미를 지님

switch 문의 조건식은 == 의미가 사용된다고 할수 있다.

switch 문 에서 case가 실행되는데 만약 break가 없다면 다음 브레이크를 찾기 전까지
다음 케이스를 실행한다.

사실상 switch 문의 조건식은 변수로 파악하는것이 맞다.
그래서 case의 이름도 switch의 변수의 자료형과 맞춰야 하는 것이다.
또한 case에서는 변수가 아닌 자료형의 값이 와야한다.

switch 문에서 따지는 중요한 요소를 정리

1. 케이스와 스위치의 데이터타입 즉 자료형
2. 케이스 다음에 브레이크 문 넣기(의도적인것 말고).


주로 스위치문이 사용되는경우는 
게임 ui 등을 만들때 사용이 된다.(게임 모드 이지 노말 하드 혹은 프로그램종료 등등이 사용)



조건 연산자.
예시로 본다

max=(x>y)?x:y;

괄호안의 값이 참이면 max에 x를 넣고
괄호 안의 값이 거짓이면 max에 y를 넣는다

삼항연산자라고 한다. 위를 풀어서 코딩하면

if(x>y)
{
max=x;
}
else {
max=y;
}

와 같다.





스위치문의 예제를 본다.

int main()
{
int x,y,r;
char c;

printf("식 입력:");
scanf("%d %c %d",&x, &c, &y);

switch(c)
{
case '+':
r=x+y;
break;
case '-':
r=x-y;
break;
case '*':
r=x*y;
break;
case '/':
r=x/y;
break;
case '%':
r=x%y;
break;
default:
printf("4칙연산이랑 나머지 이외는 연산 안합니다.");
break;
}

printf("%d %c %d = %d \n",x,c,y,r);
printf("\n");
return 0;
}

결과로
식 입력:5+9
5 + 9 = 14

이렇게 사용한다.




이런 것도 있다
int main()
{
int i;
int r=9;
int w=1;
int g=0;


printf("동쪽 갈래? 1번: \n");
printf("서쪽 갈래? 2번:\n");
printf("무기로 갈래? 3번:\n");
printf("보물로 갈래? 4번:\n");
printf("어디 갈래?:");
scanf("%d",&i);

switch(i)
{
case 1:
r=8;
printf("%d번 방으로 이동 \n",r);
break;
case 2:
r=10;
printf("%d번 방으로 이동 \n",r);
break;
case 3:
w=2;
printf("현재 무기는 %d 임 \n",w);
break;
case 4:
printf("아무것도 없었다 \n",r);
break;
default:
printf("1~4번만 입력하시오.");
break;
}


printf("\n");
return 0;
}

결과로
동쪽 갈래? 1번:
서쪽 갈래? 2번:
무기로 갈래? 3번:
보물로 갈래? 4번:
어디 갈래?:2
10번 방으로 이동

이다.

또 다른 예제로
int main()
{
char g;

printf("학점 입력:");
scanf("%c",&g);

switch(g)
{
case 'A':
printf("굿 수고");
break;
case 'B':
printf("수고");
break;
case 'c':
printf("깝");
break;
case 'D':
printf("흠");
break;
case 'F':
printf("허어");
break;
default:
printf("그건 없다.");
break;
}

printf("\n");
return 0;
}

또 이런 예제도 있다
int main()
{
int m,d;
printf("달 입력:");
scanf("%d",&m);

switch(m)
{
case 2:
d=28;
break;
case 4:
case 6:
case 9:
case 11:
d=30;
break;
default:
d=31;
break;
}
if (m>12)
{
printf("12월 이상은 없다.");
}
else 
{
printf("%d월의 일수는 %d 입니다.",m,d);
}
printf("\n");
return 0;
}




다음은 조건연산자의 사용법이다.
int main()
{
int x,y;

printf("첫수 입력:");
scanf("%d", &x);

printf("두번째수 입력:");
scanf("%d", &y);

printf("큰수=%d \n",(x>y)?x:y);
printf("작은수=%d \n",(x<y)?x:y);
printf("\n");
return 0;
}

결과로

첫수 입력:45
두번째수 입력:9
큰수=45
작은수=9

이다.


(뜬금 진로팁
it 분야가 아닌 분야에서 ai를 사용한다 
즉 다른분야도 알아서 공부하는걸 추천 )

다음은 반복문 이다. (프로그램 =규칙을 찾는다 즉 규칙을 잘찾아야 프로그램을 잘한다, 명령어들의 집합)


while 문

조건이 참일 동안 반복을 계속하는 것임.

다음 예제들로 파악한다

프린트문 반복
int main()
{
int i=0;
while (i<5)
{
printf("환영 \n");
i++;
}
printf("반복 끝");
printf("\n");
return 0;
}

환영
환영
환영
환영
환영
반복 끝

이렇게 됨

1씩 증가하는 숫자를  반복
int main()
{
int i=0;
while (i<10)
{
printf("%d ",i);
i++;
}
printf("반복 끝");
printf("\n");
return 0;
}
0 1 2 3 4 5 6 7 8 9 반복 

또 다음으로

시그마(합의 기호)를 코드로 작성해 본다.
int main()
{
int i=1;
int s=0;
while (i<11)
{
s+=i;
i++;
}
printf("수의 합=%d \n",s);
printf("반복 끝");
printf("\n");
return 0;
}

결과로
수의 합=55
반복 끝

이렇게 된다.


팩토리얼 은

int main()
{
int i=1;
int f=1;
while (i<11)
{
f*=i;
i++;
}
printf("10팩=%d \n",f);
printf("반복 끝");
printf("\n");
return 0;
}

시그마를 구하던 예제에서 시작하는 수와
연산기호만 바꿔주면 된다.




//입력합
int main()
{
int i=0;
int s=0;
int k;

printf("값을 입력:");
scanf("%d",&k);

while (i<k+1)
{
s+=i;
i++;
}
printf("입력한 값까지 합%d \n",s);
printf("반복 끝");
printf("\n");
return 0;
}




//입력 팩토리얼
int main()
{
int i=1;
int f=1;
int k;

printf("값을 입력:");
scanf("%d",&k);

while (i<k+1)
{
f*=i;
i++;
}
printf("입력한 값까지 팩토리얼%d \n",f);
printf("반복 끝");
printf("\n");
return 0;
}



//입력 짝수끼리 홀수끼리 합
int main()
{
int i=0;
int s1=0;
int s2=0;
int k;

printf("값을 입력:");
scanf("%d",&k);

while (i<k+1)
{
if (i%2==0)
{
s1+=i;
}
else
{
s2+=i;
}
i++;
}
printf("입력한 값까지 짝수합%d \n",s1);
printf("입력한 값까지 홀수합%d \n",s2);
printf("반복 끝");
printf("\n");
return 0;
}

' > 솔직한 c 언어 공부' 카테고리의 다른 글

c언어 기초 공부 07.  (0) 2019.11.07
c언어 기초 공부 06.  (0) 2019.11.06
c언어 기초 공부 04.  (0) 2019.11.04
c언어 기초 공부 03.  (0) 2019.11.04
c언어 기초 공부 02.  (0) 2019.11.03

댓글