조건문 IF문
조건문은 프로그래밍에서 데이터에 따른 의사 결정을 가능하게 하는 핵심적인 요소이다. C언어에서는 if문, 삼항 연산자, switch문 등 다양한 조건문을 제공한다. 이 중 if문은 가장 기본적이면서도 언어 상관 여부 없이 가장 중요한 문법이다. 오늘은 if문의 구조, 사용 방법, 그리고 실제 예제를 통해 if문의 모든 것을 살펴본다.
⭐1. if문의 중요성
조건문은 프로그램의 흐름을 제어하는데 있어 필수적인 요소이다. if문은 주어진 조건이 참인 경우에만 특정 코드 블록을 실행하게 한다. 이는 데이터에 따른 다른 동작을 해야 할 때, 예를 들어 사용자 입력 검증이나 오류 처리 등에서 매우 유용하게 사용된다. (C언어는 try catch 문이 없음.)
⭐2. if문의 구조
if문은 다음과 같은 기본 구조를 가진다:
if (조건) {
// 조건이 참일 때 실행될 코드
}
조건은 참(true) 또는 거짓(false)을 평가할 수 있는 표현식이어야 한다. C언어에서는 0이 아닌 모든 값이 참으로, 0은 거짓으로 평가된다.
C89(또는 ANSI C)와 C90 표준에서는 bool 타입이 공식적으로 정의되어 있지 않다. 이 표준들에서 논리적 값은 일반적으로 int 타입을 사용하여 표현되며, 0은 거짓(false)을 나타내고, 0이 아닌 모든 값은 참(true)으로 간주한다.
⭐3. if문의 권장 사항
위 If문의 구조는 참에 대한 if만 있으며, 거짓에 대한 else는 없다. 거짓에 대한 동작이 없을 때 else에 대한 실행 코드가 없을 경우, 보통 작성하지 않기 마련이다. 하지만 아래 예시 코드처럼 실행 코드가 없다하더라도 /* Intended Design */ 라고 주석이라도 남기는 것을 추천한다. 현업에서 코드 분석을 진행할 때 else가 없는 조건문에 대해 설계 의도라고 명확하게 해주어야 한다.
if (조건) {
// 조건이 참일 때 실행될 코드
}else{
/* Intended Design */
}
⭐4. else if
if문은 더 복잡한 조건 판단을 위해 else if와 else와 함께 사용될 수 있다.
if (조건1) {
// 조건1이 참일 때 실행될 코드
} else if (조건2) {
// 조건1이 거짓이고 조건2가 참일 때 실행될 코드
} else {
// 모든 조건이 거짓일 때 실행될 코드
}
이 구조는 여러 조건을 순차적으로 평가하고, 해당하는 조건의 코드 블록을 실행한다.
⭐5. 예제
#include <stdio.h>
int main() {
int userInput;
printf("Enter your input (1-3): ");
scanf("%d", &userInput);
if (userChoice == 1) {
printf("You chose Option 1.\n");
} else if (userChoice == 2) {
printf("You chose Option 2.\n");
} else if (userChoice == 3) {
printf("You chose Option 3.\n");
} else {
printf("Invalid input.\n");
}
return 0;
}
이 예제는 사용자로부터 입력 받은 숫자에 따라 다른 메시지를 출력한다. 1, 2, 3 이외의 숫자가 입력되면 Invalid Input을 출력한다.
if문은 프로그래밍에서 가장 기본적이면서도 강력한 조건 판단 도구이다. 그것은 단순한 조건부터 복잡한 조건 판단까지, 프로그램의 로직을 정교하게 제어할 수 있게 한다. 사용 방법은 간단하지만 제대로 사용하지 못하면 스파게티 코드가 될 수 있는 무서운 문법 중 하나이다. 그러므로 설계를 진행할 때, 자신이 설계하고자 하는 사양에 대해 정확히 파악하고 조건문을 추가할 것을 권장한다.
'Language > C언어' 카테고리의 다른 글
[C/C++ Tip] 20. C언어 조건문 마스터하기 : Switch문 (1) | 2024.11.05 |
---|---|
[C/C++ Tip] 19. C언어 조건문 마스터하기 : 삼항연산자 (0) | 2024.11.05 |
[C/C++ Tip] 17. Static 변수와 Extern 변수의 차이점 (1) | 2024.11.02 |
[C/C++ Tip] 16. Extern 중복 문제 해결 (Include Guard) (0) | 2024.11.02 |
[C/C++ Tip] 15. extern 기본 (0) | 2024.11.02 |