8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||) 1.3 논리연산자 : NOT (!) 2. 복합 조건 프로그램 2.1 연산자의 우선순위 2.2 복합 조건 프로그램
1. 논리 연산자 앞장에서 배운 관계 연산자로는 단순 조건식만 가능 -> 한 개의 조건식 실 생활에서의 조건은 관계가 연결된 복합적 형태가 대부분이다 키가 160보다 크고, 180보다 작은사람 키가 160보다 크거나, 180보다 작은 사람 키가 180보다 크고, 나이가 18살 이상인 사람 키가 180보다 크거나, 나이가 18살 이상인 사람 남자가 아닌 사람 위와 같은 복합적인 조건을 나타내기 위해 대부분의 프로그래밍 언어에서는 복합조건식의 사용을 허용 -> 두 개 이상의 조건식
1. 논리 연산자 복합조건식 프로그램에서는 복합조건식을 다음과 같이 사용하는 것을 허용하지 않는다 내포된 if문 사용해야 함 160 < height < 180 // 틀린 사용 방법 내포된 if문 사용해야 함 if (160 < height) { if (height <180) ........ } 프로그램이 길어지는 단점 프로그램이 복잡해지는 단점 복합조건을 논리 연산자를 사용하여 표현이 가능
1. 논리 연산자 복합조건식은 선택문과 반복문의 조건식에서 필수적으로 사용 논리 연산자 대부분의 프로그래밍 언어에서 복합조건을 표현하기 위해 논리연산자를 제공 논리 연산자 가장 많이 사용되는 논리 연산자 -> AND, OR, NOT // Boolean algebra C, Java, 자바스크립트가 동일한 논리연산자 제공
1.1 논리 연산자 : AND(&&) AND(&&) 논리 연산자는 두 개의 피연산자를 가지며, 각각의 연산자는 참 또는 거짓의 값을 가져야 한다 AND(&&) 논리 연산자는 두 개의 피연산자가 모두 참인 경우에만 결과가 참이 된다 [표7-1] 논리연산자 AND
1.1 논리 연산자 : AND(&&) (grade == 4 && score >= 4.5 ) // 괄호를 사용하여 알기 쉽게 작성하는 것이 좋다
1.1 논리 연산자 : AND(&&) ((subject1 >= 90) && (subject2 >= 90))
1.1 논리 연산자 : AND(&&) ((height-weight > 100) && (height-weight < 110))
1.1 논리 연산자 : AND(&&) ( (gender == "남자") && (age >= 18) )
1.1 논리 연산자 : AND(&&) ((score1 >= 90) && (score2 >= 90) && (score3 >= 90) && (score4 >= 90)) // 조건식의 길이에는 제한이 없다
1.1 논리 연산자 : AND(&&)
1.1 논리 연산자 : AND(&&)
1.1 논리 연산자 : AND(&&)
1.1 논리 연산자 : AND(&&)
1.1 논리 연산자 : AND(&&)
1.1 논리 연산자 : AND(&&) 프로그램을 작성하시오 - 입력: 신검점수, 나이, 성별 -출력
1.1 논리 연산자 : AND(&&) 문자의 비교는 아스키(ASCII) 코드 값으로 비교한다 알파벳 순서의 아스키 코드 값은 뒤로 갈수록 커진다 영문자 대소문자를 구분하기 위해 다음과 같은 조건식이 가능 ( ("A" <= inputchar) && (inputchar <= "Z")) ( ("a" <= inputchar) && (inputchar <= "z"))
1.1 논리 연산자 : AND(&&)
1.2 논리 연산자 : OR(||) OR(||) 논리 연산자는 두 개의 피연산자를 가지며, 각각의 연산자는 참 또는 거짓의 값을 가져야 한다 OR(||) 논리 연산자는 두 개의 피연산자 모두 거짓인 경우에만 결과가 거짓이 되며, 나머지는 모두 참이 된다 [표7-2] 논리연산자 OR
1.2 논리 연산자 : OR(||) (addr == "경기도" || addr == "서울") // 괄호를 사용하여 알기 쉽게 작성하는 것이 좋다
1.2 논리 연산자 : OR(||) ((subject1 >= 90) || (subject2 >= 90))
1.2 논리 연산자 : OR(||) ((area1 ==1) || (area2 == 1) || (area3 ==1) || (area4 == 1))
1.2 논리 연산자 : OR(||) ((m_grade == "gold") || (m_grade == "silver"))
1.2 논리 연산자 : OR(||)
1.2 논리 연산자 : OR(||) // parseInt()
1.2 논리 연산자 : OR(||)
1.2 논리 연산자 : OR(||)
1.2 논리 연산자 : OR(||)
1.2 논리 연산자 : OR(||)
1.2 논리 연산자 : OR(||)
1.2 논리 연산자 : OR(||)
1.2 논리 연산자 : OR(||) 프로그램을 작성하시오 - 입력: 문자 (대 or 소 영문자 or any Character) -출력
1.3 논리 연산자 : NOT(!) NOT(!) 논리 연산자는 한 개의 피연산자를 가진 단항 연산자이다 피 연산자가 가지고 있는 값을 반대로 바꾸는 연산자 [표7-3] 논리연산자 NOT
1.3 논리 연산자 : NOT(!) ( ! (input == 0) ) 또는 ( input != 0 )
1.3 논리 연산자 : NOT(!) ( ! ( ! (input == 0) ) )
1.3 논리 연산자 : NOT(!)
1.3 논리 연산자 : NOT(!)
1.3 논리 연산자 : NOT(!)
1.3 논리 연산자 : NOT(!)
2 복합조건 프로그램 7장과 8장에서 배운 관계연산자, 논리연산자를 활용하여 복합 프로그램 작성
2.1 연산자의 우선순위 조건식에는 산술연산자, 관계연산자, 논리연산자가 함께 사용 -> 각 연산자들은 우선순위를 가진다 C, Java, 자바스크립트 언어에서 연산자의 우선순위는 동일
2.1 연산자의 우선순위 [표7-4] 연산자의 우선순위
2.1 연산자의 우선순위
2.1 연산자의 우선순위
2.1 연산자의 우선순위
2.2 복합 조건 프로그램 두 과목 모두 80점 이상 (sub1 >= 80 && sub2 >=80) 두 과목의 합이 160점 이상 sub1+sub2 >=170 두 개의 조건을 OR로 연결
2.2 복합 조건 프로그램
2.2 복합 조건 프로그램 조건식 ((input1 % 2 == 0) && (input2 % 2 == 0))
2.2 복합 조건 프로그램
2.2 복합 조건 프로그램
2.2 복합 조건 프로그램
2.2 복합 조건 프로그램
2.2 복합 조건 프로그램 프로그램을 작성하시오 - 입력: 현재월 (숫자) -출력
2.2 복합 조건 프로그램
2.2 복합 조건 프로그램
2.2 복합 조건 프로그램
2.2 복합 조건 프로그램
2.2 복합 조건 프로그램
2.2 복합 조건 프로그램 일반
2.2 복합 조건 프로그램
2.2 복합 조건 프로그램
2.2 복합 조건 프로그램 두 프로그램의 순서도를 보면 차이점을 알 수 있다 두 프로그램의 차이점 - 첫번째 프로그램 : 처음 조건이 참일 경우에는 바로 프로그램이 종료 - 두번째 프로그램 : 처음 조건이 참인 경우에도 두 번째 조건을 검사 //실행의 효율성이 낮다
2.2 복합 조건 프로그램
2.2 복합 조건 프로그램 프로그램을 작성하시오 - 입력: 문자 // any character -출력
2.2 복합 조건 프로그램
2.2 복합 조건 프로그램
감사합니다