if (expression) statement_true
- 제어흐름 : 프로그램에서 실행되는 문장들의 실행순서
- 조건식(expression)이 참(true) : statement_true 실행하고 다음문장으로 진행
- 조건식(expression)이 거짓(false) : statement_true 실행하지 않고 다음문장으로 진행
- 제어구조 (Control Construct) / 제어문 (Control Statement) : 프로그램에서 실행되는 문장들의 실행순서를 제어/변경할 수 있는 문장
- C언어 제어구조 : 조건문 / 반복문 / 분기문 / 함수호출 등 제어흐름(실행순서)를 변경함
- 조건문 (Conditional Statement) : If문 / if-else문 / switch문
조건에 따라 문장 실행 여부 · 실행할 문장을 선택함
if문의 조건식(expression)에는 비교연산자나 논리연산자가 일반적으로 쓰임
종류 | 연산자 |
비교 연산자(Comparison Operator) | > < == != >= <= |
논리 연산자 (Logical Operator) | && || ! |
if(num==10)
{
printf("num=%d",10);
}
- 비교연산자(=관계연산자) : 두 값의 크고 작음이나 같음을 비교한 결과를 진리값으로 나타냄
- 진리값 : 참(=1)/거짓(=0)의 값을 가짐
비교연산자
연산 | 연산자 | 피연산자 자료형 | 결과값 |
같다 | == | 정수형, 부동소수형 | 값이 같으면 1 다르면 0 |
다르다 | != | 정수형, 부동소수형 | 값이 다르면 1 같으면 0 |
작다 | a < b | 정수형, 부동소수형 | a가 b보다 작으면 1 a가 더 크거나 같으면 0 |
작거나 같다 | a <= b | 정수형, 부동소수형 | a가 b보다 작거나 같으면 1 a가 더 크면 0 |
크다 | a > b | 정수형, 부동소수형 | a가 b보다 크면 1 a가 더 작거나 같으면 0 |
크거나 같다 | a >= b | 정수형, 부동소수형 | a가 b보다 크거나 같으면 1 a가 더 작으면 0 |
예시
#include <stdio.h>
int main()
{
int num;
printf("숫자를 입력하세요 : ");
scanf("%d", &num);
if(num==10)
{
printf("10입니다. \n");
}
return 0;
}
양수, 음수 판별하기
#include <stdio.h>
int main()
{
int num;
printf("숫자를 입력하세요 : ");
scanf("%d", &num);
if(num>=0)
{
printf("양수입니다.");
}
else
{
printf("음수입니다.");
}
return 0;
}
홀수, 짝수 판별하기
#include <stdio.h>
int main()
{
printf("숫자를 입력하시오 : ");
scanf("%d", &num);
if(num%2==0)
{
printf("입력한 수는 짝수입니다.");
}
else
{
printf("입력한 수는 홀수입니다.");
}
return 0;
}
중첩 if
#include <stdio.h>
int main()
{
int score;
printf("성적을 입력하세요 : ");
if(score>=90)
printf("A");
else if(score>=80)
printf("B");
else if(score>=70)
printf("c");
else if(score>=60)
printf("D");
else
printf("F");
return 0;
}
진리값에 대한 연산자
연산 | 연산자 | 피연산자 자료형 | 결과값 |
부정 (Logical not) | ! a | 진리값 | a가 0이면 1 그렇지 않으면 0 |
논리값 (And) | a && b | 진리값 | a, b 모두 참이면 1 그렇지 않으면 0 |
논리합 (Or) | a || b | 진리값 | a, b 중 적어도 하나가 참이면 1 그렇지 않으면 0 |
윤년 판별 기준 (①4의 배수면서 100의 배수가 아님 ②400의 배수)
#include <stdio.h>
int main()
{
int year;
printf("판별하고 싶은 년도를 입력하시오 : ");
scanf("%d",&year);
if(year%4==0 && year%100!=0)
printf("윤년입니다.");
else if(year%400==0)
printf("윤년입니다.");
else
printf("윤년이 아닙니다.");
return 0;
}
성적
#include <stdio.h>
int main()
{
int kor, eng, math;
printf("국영수 성적을 차례로 입력하시오 : ");
scanf("%d %d %d", &kor, &eng, &math);
printf("시험결과 : ");
if(kor>=80 && eng>=80 && math>=80)
printf("합격");
else if(kor>=80 || eng>=80 || math >=80)
printf("재수강");
else
printf("불합격");
return 0;
}
Switch문
- case 뒤의 수식은 반드시 constant expression
- 컴파일 타임에 그 값이 계산/결정될 수 있는 수식
- 변수가 포함되면 안됨
예시
#include <stdio.h>
#define FOUR 4
int main(void)
{
int a, two=2;
scanf("%d", &a);
switch(a) {
case 1:
printf("a==one\n");
break;
case two: //Error, two는 변수
printf("a==three\n");
break;
case 1+2:
printf("a==three\n");
break;
case FOUR :
printf("a==four\n");
break;
default:
printf("a==other\n");
}
return 0;
}
Break문
- switch문에서 빠져나오기
#include<stdio.h>
int main(void)
{
int a;
scanf("%d", &a);
switch( a ) {
case 1:
printf("a--one\n");
break;
case 2:
printf("a==two\n");
case 3:
printf("a==three\n");
break;
case 4:
case 5:
printf("a==five\n");
default:
printf("a==other\n");
}
return 0;
}
반응형
'Data Science > C언어' 카테고리의 다른 글
중첩반복문 (0) | 2025.03.03 |
---|---|
C언어 코드실행 시각화 사이트 (0) | 2025.03.03 |
반복문 (0) | 2025.03.03 |
자료형과 연산자 (0) | 2025.03.02 |
Hello, World! (0) | 2025.03.01 |