5장 논리 및 조건 연산자의 기본문법

5장 논리 및 조건 연산자의 기본문법


1. 논리 연산자 이해하기

1) 논리 연산자의 개요

  • 단항 연산자 1개, 이항 연산자 2개
  • 피연산자를 대상으로 참(true)과 거짓(false)을 판별
  • 피연산자 : 상수, 변수, 관계식
  • 참이면 1, 거짓이면 0

2) 논리 연산자의 종류

항목기호형식설명
NOT!단항 연산자피연산자를 부정
AND&&이항 연산자피연산자 모두 참이면 참
OR||이항 연산자피연산자 모두 거짓이면 거짓

3) 논리 연산자의 우선순위 : NOT > AND > OR


2. 조건 연산자 이해하기

1) 조건 연산자의 개요

  • 삼항 연산자
  • 피연산자의 역할
    • 첫번째 피연산자 : 조건식(참 또는 거짓)
    • 두번째 피연산자 : 조건식이 참인 경우 수행하는 상수, 변수, 수식
    • 세번째 피연산자 : 조건식이 거짓인 경우 수행하는 상수, 변수, 수식
  • 형식
    • result = (조건식) ? (상수, 변수, 수식) : (상수, 변수, 수식) ;

3. 비트 연산자 이해하기

1) 비트 연산자의 개요

  • 비트(bit) 단위로 연산
    • 로우레벨(low level) 제어 가능
  • 종류

4. 단원 실습

1) 두 개의 숫자를 입력 받으시오.
2) 두 개의 숫자에 대하여 홀수와 짝수를 구분하여 출력하시오.
3) 10에서 20사이의 값인지 여부를 출력하시오.
4) 두 개의 숫자에 대하여 비트 AND, OR, XOR 값을 출력하시오.

#include <stdio.h>
int main()
{
	int op1, op2;
	printf("첫번째 값 = ");
	scanf_s("%d", &op1);

	printf("두번째 값 = ");
	scanf_s("%d", &op2);

	// 홀수와 짝수 구분
	int oddEven = op1 % 2;  // 나머지가 0이면 짝수, 1이면 홀수
	char *msg = (oddEven == 0) ? "짝수" : "홀수";
	printf("첫번째 값 %d 는 %s 입니다.\n", op1, msg);

	msg = (op2 % 2 == 0) ? "짝수" : "홀수";
	printf("두번째 값 %d 는 %s 입니다.\n", op2, msg);

	// 10에서 20사이의 값 계산
	printf("첫번째 값 %d는 10에서 20사이의 ", op1);
	int result = (op1 >= 10 && op1 <= 20) ? printf("값입니다.\n") : printf("값이 아닙니다.\n");

	printf("두번째 값 %d는 10에서 20사이의 ", op2);
	result = (op2 >= 10 && op2 <= 20) ? printf("값입니다.\n") : printf("값이 아닙니다.\n");

	// 비트 연산
	printf("%d &(AND) %d = %d\n", op1, op2, op1 & op2);
	printf("%d |(OR) %d = %d\n", op1, op2, op1 | op2);
	printf("%d ^(XOR) %d = %d\n", op1, op2, op1 ^ op2);
}

<Result>


첫번째 값 = 5
두번째 값 = 12
첫번째 값 5 는 홀수 입니다.
두번째 값 12 는 짝수 입니다.
첫번째 값 5는 10에서 20사이의 값이 아닙니다.
두번째 값 12는 10에서 20사이의 값입니다.
5 &(AND) 12 = 4
5 |(OR) 12 = 13
5 ^(XOR) 12 = 9

좋은 웹페이지 즐겨찾기