못정함

C언어) 5장 선택문 (if문, switch ~ case문) 본문

C언어 공부/C언어 독학 (교재)

C언어) 5장 선택문 (if문, switch ~ case문)

hadara 2024. 9. 15. 19:46

<개요>

선택문 = 조건문

5-1장) if문 , if~else문, if~else if~else문

5-2장) if문 중첩, else 결합 문제, switch~case문

 

제어문 선택문 if, switch~case
반복문 while, for, do~while
분기문 break, continue, goto, return

if (조건) {

실행문

}

 

-실행문이 한 문장일 때는(때만) 중괄호 생략가능하지만 그냥 나는 항상 중괄호 챙기는 걸로...

*주의) printf()를 중괄호 안에 넣어줘야한다.

 

<if~else문>

if (조건식) {

실행문1

}

else

{

실행문2

}

 

*else에는 조건을 사용하지 않음 (조건을 만족하지 않을 때 무조건 else 부분을 실행하도록)

-실행문이 한 문장일 때만 중괄호 생략이 가능하다

 

<if ~ else if ~ else문>

if (조건식1)
{
실행문1
}
else if (조건식2)
{
실행문2
}
else
{
실행문3
}
 
*조건이 추가되면 else if문을 여러개 써주면 됨
 
*조건식 빠뜨리지 않고(?) 위에서부터 다 검사한다는 걸 꼭 기억하자. 순서를 생각해야함. 

 

 


5.2장

<if문 중첩>

-어떤 조건을 검사하기 전에 선행조건이 있을 때 사용

if (조건식)
{
	if (조건식)
    {
    	실행문
    }
    else
    {
	실행문
    }
}

-두 범위로 나누어 검사하면 더 효율적으로 검사할 수 있다. (divide and conquer)


<switch ~ case문>

- 여러 개의 상수 중 조건에 해당하는 하나를 골라 실행하는 것

-조건식으로 정수식만 사용해야함 (정수 / 상수 / 변수 / 수식 쓸거면 결괏값이 정수여야함)

-case에 사용하는 상수식 역시 정수만 가능. => 범위를 검사하는 경우에는 적합하지 않음

switch (조건식)
{
case 상수식1:
	실행문1;
    break;

case 상수식2:
	실행문2;
    break;
    
default:
	실행문3;
    break;
}

*break는 해당 블록을 탈출하는 데 사용. switch 블록을 벗어나는 것을 의미함.

*default는 상수식을 쓰지 않으며, 생략할 수도 있음. (생략할 경우 바로 블록을 벗어나므로 블록 내 어떠한 문장도 실행되지 않음). 사실 default는 항상 마지막에 실행되므로 위치가 중요한 것은 아님. 

 

-case, default는 건너뛸 위치를 표시하는 레이블(label)의 역할을 함.

-break 생략: break를 생략하면 블록의 끝까지 모든 문장을 실행함.

case1에 해당 안되면 case2로 넘어가는데, case2를 만족하고 거기에 break가 없으면 case3, case4 등등등 의 실행문들을 모두 실행함


*도전실전예제) 계산기만들기. case '+', case '*' 가능. 왜냐하면 연산기호를 문자로 받아오면 그게 아스키코드....로 처리하는거라 정수라고 볼 수 있음....