본문 바로가기
C++/기초

C++ 기초 : if / else 구문

글: 시플마 2024. 2. 10.

if / else 구문을 알아봅시다.

 

if는 기본적으로 아래 코드처럼 사용합니다.

if()
{
	
}

 

소괄호 안에 조건이 들어갑니다.

해당 조건이 참이면 중괄호 안 코드를 실행합니다.

거짓이면 빠져나옵니다.

 

아래 예시를 살펴보겠습니다.

변수 data를 선언하고 0으로 초기화하였습니다.

그리고 if 구문을 통해 100과 200의 &&(AND) 연산을 진행하였습니다.

100과 200을 && 연산하면 1이 나오고 1은 컴퓨터에서 참으로 인식합니다.

따라서 if 중괄호 안 구문을 실행합니다. 변수 data 안에 100을 대입하는 것이죠.

확인 결과 100이 대입된 것을 확인할 수 있습니다.

 

 

이번에는 if 구문 소괄호 안에 조건식의 결과가 거짓이 나오도록 하였습니다.

0은 거짓, 200은 참이고 && 연산은 둘 다 참이어야 참으로 인식하므로 

결과적으로 거짓이 나옵니다.

따라서 if문 중괄호 안 코드를 실행하지 않아 변수 data의 값은 그대로 0입니다.

 

 


 

 

 

이번에는 if문과 세트인 else문과 함께 살펴보겠습니다.

if()
{
	
}
else
{

}

 

if문 소괄호 안에 내용이 참이면 중괄호 안 코드를 실행하고

if문 소괄호 안에 내용이 거짓이면 else문의 중괄호 안 코드를 실행합니다.

 

아래 예시를 통해 살펴보죠.

 

if문 조건식에서 비교 연산자 ==를 통해 0과 1이 같은지 확인하고 있습니다.

조건식의 결과가 거짓이므로 else문의 중괄호 안, 변수 data에 200을 대입하라는 코드를 실행하고

확인 결과 변수 data에 200이 대입되었습니다.

 

if문 조건식이 참인 경우도 살펴보겠습니다.

조건식에서 999와 0이 다른지 확인하고 있습니다.

999와 0은 다르므로 조건식의 결과가 참입니다.

조건식의 결과가 참이므로 if문 중괄호 안, 변수 data에 100을 대입하라는 코드가 실행됩니다.

확인 결과 변수 data에 100이 대입되었습니다.

if문에서 코드가 실행되었으므로 컴파일러는 else문을 건너뛰고(굳이 체크하지 않고) 프로그램을 종료합니다.

 

 


 

 

if와 else문 사이에 else if 구문을 넣을 수도 있습니다.

else if문을 넣으면 if의 조건식이 거짓인 경우 바로 else로 가지 않고

else if문의 조건식도 확인합니다.

else if문의 조건식이 참이면 else if문의 중괄호 안 코드를 실행하고

거짓이면 그제서야 비로소 else문의 중괄호 안 코드를 실행합니다.

if()
{
	
}
else if()
{

}
else
{

}

 

 

아래 코드를 살펴보겠습니다.

if문의 조건식을 보면 999와 0이 같은지 확인하고 있습니다.

거짓이므로 else if문으로 넘어갑니다. 

else if문의 조건식을 보면 111과 111이 같은지 확인하고 있습니다.

참이므로 else if문의 중괄호 안 코드를 실행하여 변수 data에 200이 대입되었습니다.

 

 

else if문의 조건식 결과까지 거짓이면 else문의 코드를 실행합니다. 

확인해 봅시다.

 

if문의 조건식이 거짓이므로 else if문으로 넘어가서 조건식을 다시 확인합니다.

else if문의 조건식도 거짓이 나왔습니다.

결국 else로 넘어가 변수 data에 300을 대입하라는 코드가 실행된 것을 확인할 수 있습니다.

 

else if문을 여러 개 넣을 수도 있습니다.

가장 위에 있는 else if문부터 순서대로 하나씩 조건식을 확인하게 됩니다.

그러다 중간에 참인 조건식이 있으면 해당 else if문의 코드를 실행하고 빠져나옵니다.

이때 아래 더 달려있는 else if문과 else문은 실행하지 않습니다.

물론 if문과 else if문이 모두 거짓이면 결국에는 else문을 실행합니다.

 

여기서 잠깐 생각해 볼 게 있습니다.

if(//W가 눌렸을 때)
{
	//캐릭터를 위로 움직인다.
}
else if(//D가 눌렸을 때)
{
	//캐릭터를 오른쪽으로 움직인다.
}
else if()
{

}
else if()
{

}

 

위와 같이 코드를 작성하면 발생하는 문제점이 무엇일까요?

if문 조건식인 "W가 눌렸을 때"가 성립되었다고 봅시다.

그 순간 if문의 중괄호 안 코드를 실행하고 빠져나오기 때문에

밑에 else if문을 실행할 수 없습니다.

즉, W와 D를 동시에 눌러 캐릭터를 대각선으로 이동시키려 해도 할 수 없습니다.

 

그런 경우를 방지하기 위해서는

아래와 같이 if문으로 분리해야 합니다.

if(//W가 눌렸을 때)
{
	//캐릭터를 위로 움직인다.
}

if(//D가 눌렸을 때)
{
	//캐릭터를 오른쪽으로 움직인다.
}

if()
{
	
}

if()
{
	
}

 

if문 조건식인 "W가 눌렸을 때"가 성립되어도

프로그램이 밑에 있는 if문의 조건식 "D가 눌렸을 때"도

확인하게 되면서 대각선 입력이 가능하겠죠.

 

그래서 코드를 작성할 때

if문으로 분리하여 작성할 것인지

else if문으로 묶어서 작성할 것인지

고민하고 코드를 작성해야 할 것입니다.

 

 

 


 

 

 

 

그러면 아래 같은 상황을 생각해 볼까요?

if()
{
	
}
else if()
{

}
else if()
{

}
else if()
{

}

 

if와 else if문만 존재하고 else문이 없습니다.

이런 경우 if와 모든 else if문이 거짓이면 

아무것도 실행되지 않습니다.

 

 

 

강의 출처 : https://www.youtube.com/watch?v=PFc4g8mxOiI&list=PL4SIC1d_ab-aOxWPucn31NHkQvNPHK1D1&pp=iAQB


 

'C++ > 기초' 카테고리의 다른 글

C++ 기초 : define / 비트 연산자 (1)  (0) 2024.02.15
C++ 기초 : switch 구문 / 삼항 연산자  (0) 2024.02.12
C++ 기초 : 비교 연산자  (0) 2024.02.10
C++ 기초 : 논리 연산자  (0) 2024.02.09
C++ 기초 : 증감 연산자  (0) 2024.02.06