if문은 조건문이 참일시 문장을 실행하는 구조를 가진다.
if문에서 else를 사용할 수 있다. 이를 해석해보면 조건_표현식이 참이면 문장 1을 실행하고, 거짓이면 문장 2를 실행한다.
//if문 예시 코드 #include<iostream> using namespace std; int main() { int score; cout << "당신의 점수를 입력하시오: "; cin >> score; if (score >= 70) { cout << "Pass입니다." << endl; } else { cout << "Fail입니다." << endl; } return 0; }
if문에서 else if를 사용할 수 있다. 이는 if문이 거짓일 경우 순서대로 참인지 확인하게 된다. 참일 시 그 문장을 시행하고 밖으로 가게 된다.
// else-if문 예시코드 #include<iostream> using namespace std; int main() { int score; char grade; cout << "당신의 점수를 입력하시오: "; cin >> score; if (score >= 90) { grade = 'A'; } else if (score >= 80) { grade = 'B'; } else if (score >= 70) { grade = 'C'; } else if (score >= 60) { grade = 'D'; } else { grade = 'F'; } cout << "당신의 학점은 " << grade << "입니다." << endl; return 0; }
논리 표현식에는 아래와 같이 총 3가지 있다.
- NOT(!, 논리부정) => 참은 거짓으로, 거짓은 참으로 바꾼다.
- AND(&&, 논리곱) => 그리고
- OR(||, 논리합) => 또는
위의 표는 진리표로 참고하면 좋다.
//논리 표현식 예시 #include<iostream> using namespace std; int main() { int age; cout << "당신의 나이를 입력하시오: "; cin >> age; if ((age >= 25) && (age <= 100)) { cout << "당신은 차를 빌릴 수 있는 나이입니다." << endl; } else { cout << "당신은 차를 빌릴 수 있는 나이가 아닙니다." << endl; } return 0; }
#include<iostream> using namespace std; int main() { int year; cout << "연도를 입력하십시오: "; cin >> year if ((year % 400 == 0) || ((year % 4 == 0) && !(year % 100==0))) { cout << "윤년입니다." << endl; } else { cout << "윤년이 아닙니다." << endl; } return 0; }
이 조건문은 특정한 값을 기반으로 조건을 분기할 때 사용한다. 구조는 아래와 같다. 표현식의 값을 확인한 후, 맞는 값부터 문장들을 실행한다.
* 여기서 주의해야 될 점은 그 case에 해당하는 문장만 실행하는 것이 아니라 그 case부터 뒤를 쭉 다 실행한다. 만약 그 case끝내고 싶다면 break구문을 활용해야한다.
switch 구문의 모든 case 분기에도 진입하지 못한 경우 특정 문장을 실행하고 싶다면 default분기를 사용
이 구문은 마지막 부분에 한번만 사용할 수 있고, 입력이 잘못되었다는 것을 감지할 때 많이 활용된다.
//switch문 예시 코드(학점 구하기) #include<iostream> using namespace std; int main() { int score; char grade; cout << "당신의 점수를 입력하시오: "; cin >> score; switch (score/10) { case 10: grade = 'A'; break; case 9: grade = 'A'; break; case 8: grade = 'B'; break; case 6: grade = 'C'; break; case 5: grade = 'D'; break; default: grade = 'F'; break; } cout << "당신의 학점은 " << grade << "입니다." << endl; return 0; }
조건부 표현식(삼항연산자)은 다음과 같은 형태를 취한다.
이는 조건이 참이면 표현식1, 거짓이면 표현식2를 실행한다.
#include<iostream> using namespace std; int main() { int num1, num2; int large; cout << "첫번째 수 입력: "; cin >> num1; cout << "두번째 수 입력: "; cin >> num2; large = num1 > num2 ? num1 : num2; cout << "둘 중에 큰 수는 " << large << "입니다" << endl; return 0; }