함수**
4 - 1 연산자(사칙, 관계, 논리 연산자)(Operator)
목차
- 연산자의 개념
- 연산자의 분류
- 사칙 연산자
- 관계 연산자
- 논리 연산자
- 연산자 우선 순위
- 문제를 해결하기 위한 절차를 알고리즘이라 하며 우리가 문제를 해결하기 위해서는 각각 함수단위로 큰 문제를 작은 단위로 분할하는 방법을 많이 쓴다.
- 문제 해결을 위한 각각의 함수가 존재한다.
- 입력자료를 보면 여러 데이터 타입들이 존재한다. 파일의 형태도 존재한다. 가령 파일로부터 다음과 같은 정보를 읽어서 아웃풋으로 다음과 같은 결과를 얻고싶다면 어떻게 해야할까? 각각의 값들을 더해서 평균값을 더해 그 값을 가지고 점수대를 매기는 것. 이런 문제를 해결할때에는 그것을 해결할 수 있는 함수를 분류해야한다.
- 세개를 더하는 함수, 평균을 구하기 위해 나누는 함수, 조건에 따라 등급을 매기는 함수가 필요할 것.
- 지금까지 배운 내용들은 변수를 어떻게 선언하고 문제를 해결하기 위해 함수를 어떤 단위로 나누고, 매개변수의 형태, 포인터를 공부하였다.
- 이제 세부적인 내용을 채우기 위해,, 즉 우리가 문제를 해결하기 위한 도구를 자세히 공부해보자.
연산자의 개념
연산자(Operator)
- 연산자(operator)는 산술 연산자 +, -, * 기호와 같이 이미 정의된 연산을 수행하는 기호나 키워드를 의미
연산자는 왜 필요할까?
- 문제를 해결하는 방법에서 도구(장비)와 같은 역할
피연산자
- 연산(operation)에 참여하는 변수나 값을 피연산자(operand)
- 연산을 한다할때,, 10과 20은 양옆의 +라는 연산자에 따라서 연산되는 피연산자.
연산자 분류
대입 연산자(assignment operator)
- 변수의 저장 값을 대입하는 '=' 기호가 대입(할당) 연산자(assignment operator)
- '=' 연산자 오른쪽 수식을 먼저 계산하고 결과 값을 왼쪽 변수에 대입하는 기능
- 대입 연산자의 왼쪽 부분에는 반드시 변수만이 가능, 대입 연산자 왼쪽에 온 변수는 값이 변경
- 수식의 결과 값을 변수에 대입하지 않으면 프로그램에는 영향이 없음
관계 연산자(relational operator)
- 관계 연산자는 2개의 피연산자 관계(크기)를 비교하기 위한 연산자
- 관계 연산자가 포함된 수식의 결과는 1(참을 의미)이 아니면 0(거짓을 의미)
- 수식에서 참 또는 거짓으로 계산 결과가 나오는 경우 프로그래밍 언어에서는 편의상 참(1), 거짓(0)으로 규정하였고 printf()를 사용하여 출력할 경우 결과가 참이면 정수1, 거짓이면 0을 출력함
논리 연산자(logical operator)
- &&(and), ||(or), !(not)
- 논리 연산자는 두 개 또는 하나의 논리값을 0이나 1의 논리값으로 평가하기 위한 연산자
( 3 && 4 )?
- 논리연산자는 어쨌건 참(1)아니면 거짓(0)으로 나온다.
- 그런데 0과 1이 아닌 상태라면..?
생각하기
- 여러가지 문제를 해결하기 위해 문장 중에서 참과 거짓을 결정하여 수행 순서를 결정해야 하는 경우가 많은데, 관계 연산자와 논리 연산자처럼 결과가 참(1)또는 거짓(0)으로 나오는 경우가 아닌 수식에서는 어떠한 방법으로 참과 거짓을 구별할 수 있을까?
- C언어에서는 참과 거짓을 따져야 하는 경우들이 생겼을때 만든 약속이 있다. 거짓을 0이라 규정하고 이를 출력하라 할때 0을 출력한다.
- 이때, 0뿐만 아니라 소수점을 포함한 0.0, '\0'(null문자) 이 세개를 제외한 이외의 것들(0.1, -0.43, ,,,)은 모두 참으로 처리한다.
- 따라서 3 && 4 는 1 && 1 이므로 참(1)이다.
생각하기 : 문제풀이
연산자 우선순위
반응형
'컴퓨터공학입문' 카테고리의 다른 글
4 - 2 연산자 예제 실습 (0) | 2019.09.04 |
---|---|
3 - 3 함수 호출 방법 (0) | 2019.08.31 |
3 - 2 함수와 매개변수 (0) | 2019.08.28 |
3 - 1 사용자 정의 함수 (0) | 2019.08.28 |
2 - 4 프로그램 구조 (0) | 2019.08.26 |