c언어 #5 - 제어문(if, switch,for,while,break,continue) (국비6일차)

 

오늘 배울 목차!

1. 조건문
2. 반복문
3. 기타제어문

 

 

제어문 : 프로그램 진행 순서를 제어(변경)

 

1. 조건문

- if, if else
- switch

조건문 if 문법

 

if( 조건식(비교연산) )
{

    참일 때 실행문,

}
else
{

    거짓일 때 실행문,

}

etc-image-0

 

etc-image-1
중첩 if문 사용

if문은 중첩으로도 사용가능해서, 여러 조건을 넣을 수 있다.

etc-image-2

중첩에 중첩이 가능하며, 실제로 일을 할 땐 수십 번의 중첩이 있는 경우도 있다고 한다.

이렇게 헷갈릴 수도 있어서

else if문을 사용하는 것이다.

 

etc-image-3
else if 사용

else if를 사용하면 이렇게 간단하게 표현이 가능하다.

 

한 가지 if문을 사용할 때 tip인데

if (score >90) printf("A학점 입니다.");

혹은

if (score >90)
printf("A학점 입니다.");

 

라고 써도 작동을 잘한다. 다만 한 줄만 인식하니 주의하자.

 

 

조건문 switch 문법

switch (변수 이름)
{

case  값1 :
            A 실행문 ;
            기타제어문
case  값2 :
            B 실행문 ;
            기타제어문

}

etc-image-4

switch 문 같은 경우 break를 쓰지 않으면

컴퓨터의 특성 때문에( 위부터 아래로 차례대로 계산)

그다음 케이스를 이어서 실행한다.

 

etc-image-5
switch문 default

 

근데 만약 내가 설정한 값이 아닌 다른 값들을 사용자가 입력한다면?

하나하나 이를 다 적을 수 없기 때문에 default라는 기타제어문도 있다.

이를 사용해서 다른 것을 입력했을 때를 대처가능하다.

 

그리고 int형이나, char 즉 정수나 한 문자일 때만 switch에 들어가는 변수로 사용가능하다.

 

switch문의 한계는

값을 쓰는 곳에 연산자를 사용할 수 없다는 것이다.

case 'a' && 'A':

이렇게 사용이 불가능하다는 것이다.

 

그렇다면 저런 경우는 어떻게 사용할까?

etc-image-6
case를 여러개 사용하기

이렇게 case를 여러 개 써서 사용하면 된다.

 

2. 반복문

- while, do-while
- for

반복문 while 문법

if문과 같다.

while (조건)
{
  참 일 때, 실행문
}

 

그러나 if문과 다른 점은 

if문은 참이면 실행문을 실행하고 밑으로 내려가는 반면

while문은 참이면 실행문을 실행하고, 그 결과값이 다시 조건이 참인지 아닌지 확인하러 간다.

그리고 참이라면 반복을 하는 것이다.

 

etc-image-7
while문

이렇게 코드를 작성하면 level이 10일 때까지 반복이 되는 것이다.

 

etc-image-8
반복이 되는 기준

반복문은 변수의 초기값, 제어 조건, 변수 연산에 따라

몇 번 반복될지 결정이 된다.

 

만약 내가 원하는 횟수만 반복하고 싶다면 

여러 가지 방법이 있겠지만

이렇게 하면 간단하다.

 

1. 제어변수 초기값 - 0으로 설정

2. 제어조건 - < (횟수)

3. 제어변수 연산 - ++

 

예를 들어 "hello"를 3번 출력하고 싶다면?

etc-image-9

이렇게 작업해주면 된다.

 

그리고 while문도 중첩이 가능하다.

그리고 많이 쓰인다.!!!

 

etc-image-10
do-while

do-while문은

조건이 참이 아니더라도 1번은 실행되게 만든 반복문이다.

그럼 이건 언제 쓰일까?

etc-image-11

이렇게 특정 조건을 넣고 싶을 때(여기선 단수를 2와 9사이의 수만 입력 가능하게)

사용한다.

 

while문 안에 있는 실행문이 만약 길면

위에 입력한 것과 같은 문장을 길게 또 입력해야 하는 상황이 생긴다.

이때 do-while문을 사용하면

etc-image-12

코드를 더 적게 쓰면서 원하는 결과값을 낼 수 있다.

 

 

반복문 for 문법

for문은 우리가 while문을 익혔으므로 간단하게 익힐 수 있다.

그럼 우리가 왜 for문을 사용할까?

 while문은 그 안에 들어가는 코드가 길어지면

한눈에 반복 횟수를 결정하는 요소들이 보이지 않게 된다.

그렇기 때문에 한눈에 몇 번 반복할지 볼 수 있게 만든 것이 for문이다.

또 몇번 반복할지 개수를 예측가능하면 for문을
에측이 안되면 while문을 사용한다.

 

for( 제어변수 초기화 ; 제어조건 ; 제어변수 연산)
{

     참일 때, 실행문

}

etc-image-13
for문

 

진짜 너무 편하다.. for문으로 쓰니 읽기도 쉽고 편하다.

그래서 실제로 for문을 더 많이 사용한다고 한다.

 

※주의할 점은 변수 i는 for문 안에서만 선언된 것으로 for문 안에서만 사용이 가능하다.

 

3. 기타 제어문

- break
- continue

 

break는 위에서도 사용하였듯

이것을 만나는 순간 반복문을 멈춰버린다.

etc-image-14

어떻게 사용하냐고?

etc-image-15

이렇게 특정한 조건일 때 멈추고 싶을 경우 사용한다.

 

etc-image-16

 continue는 계속한다는 의미가 아니다.

위의 사진에서도 볼 수 있듯

continue를 만나는 순간 해당 조건의 회차를 끝내버린다.(스킵해 버린다.)그래서 결과값에 5가 없는 것이다.