(C++) 5.2 if 조건문

이준우·2021년 10월 17일
0
post-custom-banner

여러분이 어떤 프로그램 언어를 배웠다면 if문은 그리 어렵게 생각하지 않을 것이다. 프로그램을 짜기 위해선 무조건 조건문이 들어가야 우리가 원하는 프로그램을 만들 수 있으니깐 말이다. 그래도 짚고 넘어갈려고 한다.

#include<iostream>

int main()
{
	using namespace std;

	int x;

	cin >> x;

	if (x > 10)
		cout << x <<" is greater than 10" << endl;

	else
		cout << x << " isn't greater than 10" << endl;
	
	
	return 0;

}

아주 기본적인 조건문 프로그램이다. if를 사용했으면 거의 대부분 else가 따라온다. 실제로 프로그램을 돌려보면 이해가 갈테니 패스~. 그리고 하나의 프로그램에 여러 개를 실행하고 싶으면 무조건 중괄호를 써서 묶어줘야 한다.

if문
if()()안에는 boolean type이 들어간다. 0이 아니면 true, 0이면 false이다.

#include<iostream>

int main()
{
	using namespace std;

	int x;

	cin >> x;

	if (x > 10)
		cout << x << " is greater than 10" << endl;

	else if (x < 10)
		cout << x << " isn't greater than 10" << endl;
	else
		cout << "x is exactly 10" << endl;
	
	return 0;

}

else if 를 사용하여 프로그래밍하는 방법도 있다.

#include<iostream>

int main()
{
	using namespace std;

	int x;

	cin >> x;

	if (x > 10)
		cout << x << " is greater than 10" << endl;

	else 
	{
		if (x < 10)
			cout << x << " isn't greater than 10" << endl;
		else
			cout << "x is exactly 10" << endl;
	}

	return 0;

}

간혹 가다 이런 식으로 프로그래밍하는 방법도 있는데, 개발자들 사이에서 종종 위와 같은 프로그래밍을 사용하기도 한다. 조건문안에 또 조건문이 있고 그 안에 또 조건문이 있는 꼬리를 물고 꼬리를 무는 구조는 별로 좋지 않다. 하지만 주석이 있고 그 구조를 빨리 알아낼 수 있게 만들면 논리상으론 아무런 문제가 없다.

#include<iostream>

int main()
{
	using namespace std;

	int x, y;

	cin >> x >> y;

	if (x > 0 && y > 0)
		cout << "both numbers are positive" << endl;
	else if (x > 0 || y > 0)
		cout << "one of the numbers is positive" << endl;
	else
		cout << "Neither number is positive" << endl;

	return 0;

}

논리 연산자를 사용하여 프로그램을 만들기도 한다. 정말 자주 사용된다.

#include<iostream>

int main()
{
	using namespace std;

	int x;

	cin >> x;

	if (x > 10);
	{
		x = 1;
	}

	cout << x << endl;
	return 0;

}

이 경우는 null statment인데, 좀 알아봐야할 필요가 있다. 자세히 보면 if문에 ;이 붙어있다. 우리가 아는 if문은 ;이 없는데 말이다. 이럴 경우 어떻게 작동할까? 실제로 코드를 복사하여 실행하면 if문 안의 x는 1이라는 것을 출력한다. 입력값 x가 어떤 값이든 간에 1을 출력하는 것을 볼 수 있다. 보통은 잘 사용하지 않는 편인데, 때론 사용하기도 한다. 그땐 주석을 달아서 다른 사람이 알 수 있도록 하는 것 이 좋다.

profile
꿈꾸는 CV
post-custom-banner

0개의 댓글