-
논리 연산자의 이해와 실습 (AN D, OR) C 언어 기초 6 학습 사항 -카테고리 없음 2021. 8. 16. 07:42
이글은요,개인적으로 있는 사항들을 기록하고 잊지 않기 위해 작성되었습니다.본문의 예제는 유튜브 저도 코딩님의 C언어무료강의에 있는 내용을 통해서 작성되었습니다.연산자에 대해 더 자세히 알고 싶다면 3-1, 3-2의 항목에서 검색해 주세요.
1. AND 논리 연산자
AND 연산자는 조건식에서 두 개의 값의 조건을 확인하며, 두 개의 값이 모두 true인 경우 true 처리를 하는 연산자입니다.하나라도 false면 false처리를 합니다.
예) 4개의 값 a, b, c, d를 a=b인지, c=d인지를 확인하고 다른 문자를 출력
{/ 논리연산자 AND 와 OR 연산자 int a = 10 , b = 11 , c = 12 , d = 13 ; if ( a == b & c== d)/a 와 b 가 동일한 경우 true 판정 {printf("a 와 b 는 같고 c 와 d 도 같네요.");}else {print return 0;} 보시면 a는 10, b는 11, c는 12, d는 13으로 각각 값이 다릅니다.if문의 조건식에서 a=b, c=d의 여야당 true가 될 것으로 생각했는데, 이 값은 false입니다.모든 변수의 값이 같으면 값은 참이 되고 "a와 b는 같고, c와 d도 같습니다"라는 문구가 출력이 될 것입니다.하지만 현재 값은 false이기 때문에 else에서 작성한 값대로 '값이 서로 다르네요.'라고 하는 문구가 출력이 됩니다.
2. OR 연산자
OR 연산자는 조건식으로, 두 값의 조건 중 하나라도 참이면 true로 처리하는 연산자입니다.AND 연산자와는 달리, 하나라도 참이면 모두 거짓이어야 합니다.OR 연산자의 문자는 백스페이스 아래에 있는 (역슬래시) 버튼을 시프트를 누르면서 누르면 나옵니다.
예) 4개의 값 a, b, c, d를 a=b인지, c=d인지를 확인하고 각각 다른 문자출력 {/논리연산자 OR 연산자 int a= 10, b= 10, c= 11, d= 12;if (a== b|| d 혹은 c=d 면 true 판정 {printf("a와 b b b 값이 같거나 c)}return 0;} 코드를 보시면 왼쪽 비교 값만 올바른 오른쪽 비교 값이지만 프로그램 실행 시 올바른 결과 값을 출력합니다.
3) 실습
조건 : a, b, c, d값을 입력하여 OR 연산자가 정상적으로 동작하고 있는지 확인하는 프로그램
{inta, b, c, d;printf("OR 논리연산자 실습프로그램 입니다.
"); printf ("a, b, c, d의 4개의 값을 입력하고 값을 확인합니다.
"); printf ("a와 b, c와 d의 값 두 개의 비교값 중에서 하나라도 같으면 참입니다.
"); printf ("a의 값 입력 : ");scanf_s("%d", &a); printf("b 값 입력 : " ) ; scanf _ s ( " % d " 、 &b); printf("c 값 입력 : " ) ; scanf _ s ( " % d " 、 & c ) ; printf ( " d の 値 入力 : " ) ; scanf _ s ( " % d " , & d ) ; printf ( " 입력값 확인 결과 a = % d , b = % d c = % d , d = % d
" , a , b , c , d ) ; if ( a == b||c==d){printf("--결과: a와 b는 같거나, c와 d 값이 같습니다.-----
");}else{printf("-----결과 : ab와 cd 둘다 값이 서로 다릅니다 ----
";}return 0;}이전 예에서는 a, b, c, d값을 미리 정해 놓은 것과는 달리 입출력문에서 직접 원하는 값을 넣을 수 있도록 하였습니다.그리고 좀 더 직감적으로 보기 위해서는 #include<time.h>를 통해서 delay함수를 넣어서 문자 출력을 천천히 할 수도 있습니다.
NOT 연산자에 대한 설명은 3-1, 3-2에 있습니다.
여담으로 블로그 안에 작성한 코드들은 모두 티스토리에서 코드블록으로 작성한 뒤 붙여 넣었더니 옆에 모여 나오네요. 네이버 블로그 내에서 티스토리만큼 편안한 기능이 있는지 아시는 분은 알려주시면 감사하겠습니다. ( ´ ; ω ; ` )