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

 

오늘 배울 목차!

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

 

 

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

 

1. 조건문

- if, if else
- switch

조건문 if 문법

 

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

    참일 때 실행문,

}
else
{

    거짓일 때 실행문,

}

 

중첩 if문 사용

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

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

이렇게 헷갈릴 수도 있어서

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

 

else if 사용

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

 

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

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

혹은

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

 

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

 

 

조건문 switch 문법

switch (변수 이름)
{

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

}

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

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

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

 

switch문 default

 

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

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

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

 

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

 

switch문의 한계는

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

case 'a' && 'A':

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

 

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

case를 여러개 사용하기

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

 

2. 반복문

- while, do-while
- for

반복문 while 문법

if문과 같다.

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

 

그러나 if문과 다른 점은 

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

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

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

 

while문

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

 

반복이 되는 기준

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

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

 

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

여러 가지 방법이 있겠지만

이렇게 하면 간단하다.

 

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

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

3. 제어변수 연산 - ++

 

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

이렇게 작업해주면 된다.

 

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

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

 

do-while

do-while문은

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

그럼 이건 언제 쓰일까?

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

사용한다.

 

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

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

이때 do-while문을 사용하면

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

 

 

반복문 for 문법

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

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

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

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

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

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

 

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

     참일 때, 실행문

}

for문

 

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

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

 

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

 

3. 기타 제어문

- break
- continue

 

break는 위에서도 사용하였듯

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

어떻게 사용하냐고?

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

 

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

위의 사진에서도 볼 수 있듯

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