|
| Posted by 박종훈 | 2006-10-15 08:51:50, Hit : 6039 | |
|
|
|
효과적인 조건문 사용을 위한 논리연산자※이 내용을 숙지하시면, 조건문사용시 매우 편리합니다. ※간단히 어려운내용없이 설명했습니다.
논리연산자의 종류 연산자의 종류 : AND, OR, NOT 창조[우리어] 에서 쓰는표현 : 그리고, 또는, 부정
논리연산자 세부 설명
그리고 ☞ 두 식이 모두 만족할때 이 논리연산자는, 다른 프로그래밍언어에서는 AND와 같은겁니다. 역활은, 두 식이 모두 참일경우에만, 실행하게하도록 하는 겁니다. 아래의 예를 통해 알아보도록 하겠습니다.
만일((a = 30) 그리고 (b = 40)) { 문자창보여("이 조건은 두 식이 참일때만 실행됩니다."); }
(조건문의 조건부만 설명하겠습니다.)
(a = 30) 그리고 (b = 40) '그리고' 라는 연산자 보이시죠? (a = 30)와 (b = 40)이 모두 참일때, 이 조건문은 실행됩니다.
또는 ☞ 두 식중 하나가 만족할때 이 논리연산자는, 다른 프로그래밍언어에서는 OR과 같은겁니다. 역활은 두 식중 하나가 만족할때 실행하게하도록 하는 겁니다. [두 식이 모두 참이어도 실행] 아래의 예를 통해 알아보도록 하겠습니다.
만일((a = 30) 또는 (b = 40)) { 문자창보여("이 조건은 두 식중 하나가 참일때만 실행됩니다."); }
(조건문의 조건부만 설명하겠습니다.)
(a = 30) 또는 (b = 40) '또는' 이라는 연산자 보이시죠? (a = 30)와 (b = 40)이 중 하나라도 참일때, 이 조건문은 실행됩니다.
부정 ☞ 식의 결과를 반대로 할때 이 논리연산자는, 다른 프로그래밍언어에서는 NOT와 같은겁니다. 역활은 식의 결과를 거꾸로 합니다. [참일 경우 거짓으로 / 거짓을 경우 참으로] 아래의 예를 통해 알아보도록 하겠습니다.
만일(부정 (체크박스0.표시)) { 문자창보여("이 조건은 체크박스0의 체크가 없을때만 실행됩니다."); }
(조건문의 조건부만 설명하겠습니다.)
부정 (체크박스0.표시) '부정' 이라는 연산자 보이시죠? 부정이라는 연산자는, 식의 결과를 거꾸로 합니다. [진리형의 경우자주 사용됩니다.]
논리연산자 핵심정리
'그리고' 연산자 ☞ 두 식이 모두 만족할때 참을 반환 [둘중 하나라도 거짓이면 거짓을 반환] '또는' 연산자 ☞ 두 식중 하나라도 만족하면 참 반환 이때, 두 식이 모두 만족해도, 참을 반환 [단, 두 식이 모두 거짓이면 거짓을 반환] '부정' 연산자 ☞ 식의 결과를 거꾸로 함.[식의 결과를 부정함.] 부정 (거짓) 을 하면, 참을 반환. 부정 (참) 을 하면, 거짓을 반환.
comment. 만일, 논리연산자를 만만하게 보고, 지나치신다면 나중에 조건문 사용할때 무지 불편합니다. 아래의 경우를 보면서, 논리연산자의 중요성을 알아볼까요?
a 혹은 b 가 참일경우 조건을 실행하게 된다면.. [이때, 논리연산자 사용안한다고 가정합니다.]
a, b 모두 참일때 a 가 참이고, b가 거짓일때 a 가 거짓이고, b 가 참일때
이렇게.. 3가지의 경우의 수를 생각하시면서 조건문을 만드셔야 합니다. 어떤가요? 무지 불편하죠? [더 많은 조건이 있다면, 그만큼 더 불편하게 되는거죠..]
그런데, 우리는 이 강좌에서 논리 연산자를 배웠음으로.. 위와 같은 고생은 안하고 그냥 간단히, 논리연산자만 사용하면 고생이 준다는 거죠^^ 아셨나요? 논리연산자의 중요성을~
|
|
|
지상현 2006-10-24 AM 12:01:05 |
|
|
|
조금만 더 보태겠습니다 ^^
부정 (어쩌고 그리고 저쩌고) => 부정 어쩌고 또는 부정저쩌고
부정 (어쩌고 또는 저쩌고) => 부정 어쩌고 그리고 부정 저쩌고 |
|
|
지상현 2006-10-24 AM 12:04:17 |
|
|
|
혹시, 집합을 배우신 분들은 이것을 집합으로 이해하시면 더 간단합니다.
각각의 조건들을 참으로 뭉친 진리 집합으로 보고, 진리 집합에 원소가 하나 이상 있을 때를 참, 공집합일 때를 거짓으로 본다면
그리고 => 교집합
또는 => 합집합
부정 => 여집합
이것을 전개하는 이론도 집합이나 명제와 똑같습니다.
위 댓글도 아마 드모르간의 법칙인가 뭔가였을 겁니다. -┏ |
|
|
지상현 2006-10-24 AM 12:11:36 |
|
|
|
어, 하나 더 달게 되는군요(....)
다른 컴파일러에서는 최적화로 자동으로 일어나는 일이지만, 창조에서는 아닌 것이 있습니다.
// 이러쿵과 저러쿵은 명령어 (진리함수)
만일 ((이러쿵()) 또는 (저러쿵()))
어쩌고...
이런 식이 있을 때, 먼저 이러쿵과 저러쿵을 실행해본 뒤 둘 중 하나만 참이어도 어쩌고 부분이 실행됩니다.
그런데, 이 식에서는 이러쿵이 참이라면 그 뒤는 볼 것도 없이 식 전체가 참이 됩니다.
그래서 여러 컴파일러들은 또는 으로 연결된 식이 있을 때 하나만 참이면 뒤 명령어는 아예 실행도 하지 않습니다.
저러쿵도 반드시 실행되어야 한다면 문제가 발생하겠죠?
창조에서는 그런 최적화가 보이지 않지만, 반대로
이러쿵만 참이면 저러쿵은 실행 안해봐도 될 때는 저런 문장을 사용하면 저러쿵도 어쩔 수 없이 실행됩니다.
따라서, 이런 경우에는 또는 으로 연결하는 것 보다는 만일을 겹쳐서 쓰는게 나을 것이다~ 라는 이야기 입니다.;;; |
|
|
박종훈 2006-10-24 PM 9:27:34 |
|
|
|
아~ 그렇군요^^
좋은 추가 설명 감사합니다^^.. |
|
|
지우개 Expert 3.0 제작자 : 천호성 님 [LINK] |
|
|
|
대박로또2005 제작자 : 최재일 님 [LINK] |
|
|
1 | 박종훈 님 | 15292 점 | |
2 | 지상현 님 | 8809 점 | |
3 | 손상진 님 | 7388 점 | |
4 | 권선중 님 | 6060 점 | |
5 | 이진백 님 | 5174 점 | |
|
|
|
가입일 | 닉네임 |
05/31 | 김동률 |
03/31 | 홍형기 |
09/01 | o00pp99oo |
12/27 | 이재민 |
11/20 | 이희철 |
|
|
|
|
. |
. |
. |
|