2022. 5. 10. 21:21ㆍc,c++ 기본/진짜 기본
안녕하세요 대학생 개발자입니다.

이번 글에서는 이제 모든 코드에 로직이라는것을 결정하는 조건문이나 반복문에 대해서 알아볼거에요.
우선 조건문이라는게 무엇일까요?
말 그대로 어떤 조건에서 실행하고 어떤 조건이 아니면 실행하지 않겠다는 의미로 해석이 되는데요.
우선 조건문은 크게 두가지로 쓰이는데요
첫번째는 if문이고
두번째는 switch문입니다.
if문의 경우에는 true와 false로 떨어지는 하나의 명제를 넣어서
그 명제가 참이라면 실행하고 참이 아니라면 실행하지 않는 구문이에요.
물론 if문이라고 해서 꼭 if만 있는건 아닙니다.
if 조건에 해당하지 않는 경우에만 실행하고 싶은 부분이 분명 있기 때문에
else라는 키워드도 같이 제공하고 있습니다.
if(조건){
실행블럭
}
else{
실행블럭
}
다음과 같이 할 수 있는거죠
마지막으로 else if도 있긴합니다만 이부분은 간단히 말씀드리면 else와 if가 하나로 합쳐져 있는겁니다.
if(조건){
실행블럭
}
else if(조건2){
실행블럭
}
다음과 같은데 이건 자세히 보면 아래의 문장과 동일한 역할을 하고 있음을 알 수 있습니다.
if(조건){
실행블럭
}
else {
if(조건2) {
실행블럭
}
}
즉 else if문은 else의 실행블럭이 if문인 구조와 거의 동일한 모습인것을 알 수 있습니다.
나중엔 else if문이 더 간결해서 많이 쓰시게 되겠지만 지금 당장 이부분이 헷갈리신다면 그냥 더 직관적인
if, else문만을 사용한 코드 또한 작성이 가능하다는점 참고하시면 좋을 것 같습니다.
다음으로 switch문인데요
C언어의 switch문은 조건식으로 정수밖에 들어갈 수 없습니다.
아까의 if문과는 다른경우죠 if의 경우에는 참과 거짓으로 판단되는 명제밖에 들어갈 수 없었지만 switch의 경우에는 정수를 가지고 그것에 해당하는 케이스로 가게됩니다.
그렇기 때문에 스위치라고 불리는거겠죠.
문법또한 굉장히 단순합니다.
케이스를 나누고 싶은 하나의 변수를 switch문안에 넣게되면 그 값에 따른 분기로 넘어가게되는데
int a = 10;
switch(a)
{
case 1:
printf("hello world case 1\n"); break;
case 2:
printf("hello world case 2\n"); break;
case ...
case 10:
printf("hello world case 10\n"); break;
}
다음과 같은 문장이 있다면 이 a의 값이 10이기 때문에 10에 해당하는 분기문으로 튀어갈 것 입니다.
그리고 "hello world case 10"을 출력하게 되겠죠.
물론 if문을 switch처럼 쓸수있고 switch문을 if문 처럼 쓸수있지만 대부분
참과 거짓으로 떨어지는 명제에 대해서는 일반적으로 if문을 많이 쓰는 반면, 그 변수로 인해 일어날 수 있는 경우의 수가 다양하다면 switch문을 사용하는것이 일반적이겠습니다.
bool flag = GetFlag();
switch(flag)
{
case true:
break;
case false;
break;
}
위와 같이 참과 거짓인 명제를 가지고 다음과 같이 할 수도 있겠고
int type = GetActionType();
if(type == 1)
...
else if(type == 2)
...
...
else if(type == 10)
정해진 작업
위와 같이 정해진 레이블들이 있고 이 레이블에 해당하는 실행을 해야되는 경우에도 if문을 사용할 수 있겠습니다.
이번 글에서 다루는 조건문에 대한 내용은 여기서 마치도록 하겠습니다.
오늘도 긴글 읽어주셔서 감사드립니다.
그럼 안녕히계세요