728x90
반응형

01. 수식의 개요

 

✅ 수식(expression)

  • 값(정수, 실수, 문자, 문자열 등)을 나타내는 표현
  • 연산자(연산을 수행하는 함수 포함)와 피연산자로 구성되어 하나의 값을 나타내는 표현
    • 예) 2, -5.3, "abc", i+3 ...
  • 수식은 연산자와 피연산자로 구성 되지만 피연산자와 연산자가 모두 포함될 필요는 없음!
class Main{
    public static void main(String[] args){
        int i = 1;		 
        System.out.println(i+3);   //예1) 연산자와 피연산자로 구성
        
        System.out.println(f());   //예2) 피연산자 없이 수식 구성
        System.out.println(-5.3);  //예3) 연산자 없이 수식 구성
    }
    
    public static int f(){
        return 100;
    }
}

 

 

 

 

 

 

 


02. 수식과 문장의 차이

 

  • 수식: 값을 나타내는 표현
  • 문장: 처리를 나타내는 표현
    • 처리: 값 계산, 수행 흐름 바꾸기, 값을 화면에 출력 등

 

예) Python

#수식이면서 문장
3+2 

#문장(어떤 하나의 값을 표현하지 않기 때문에 수식은 아님)
if k > 1:
   k = 1

 

예) C, C++

  • 수식의 끝에 세미콜론(;)을 찍으면 문장이 됨

  • 문장의 끝에 세미콜론이 없다고 해서 항상 수식이 되는 건 아님

 

 

 

 

 

 

 


03. 수식과 연산자

 

▪️ 수식에 사용되는 기본 연산자

  • 산술 연산자
  • 관계 연산자
  • 논리 연산자
  • 그 외 연산자

 

 

 

 

 

✅ 산술 연산자

default 기본적인 사칙연산 외에 추가되는 산술 연산자는 언어마다 다름
  • 기본적으로 사칙연산자 포함
  • 언어에 따라 추가적인 산술 연산자 포함
    • 예) 나머지, 거듭제곱 등

 

 

 

 

 

🔸피연산자 개수

  • 단항 연산자: 1개의 피연산자 필요

C, C++ 단항 연산자

  • 이항 연산자: 2개의 피연산자 필요

 

 

 

🔸우선순위

  • 하나의 수식에 여러 연산자가 사용되는 경우, 우선순위에 따라 연산 수행

 

 

 

🔸타입 변환

  • 주어진 타입의 값을 다른 타입의 값으로 변환
  • 피연산자들의 타입이 서로 일치하지 않는 경우 필요
  • 종류: 묵시적 타입 변환, 명시적 타입 변환

 

 

 

 ▪️ 묵시적 타입 변환

  • 언어의 정책에 따라 컴파일러에 의해 자동으로 변환
  • 데이터 집합이 커지는 방향의 타입으로 확대변환

 

 

 

▪️ 명시적 타입 변환

  • 프로그래머가 명시한 타입으로 변환
  • 확대변환 및 축소변환 모두 가능

 

 

 

 

 

✅관계 연산자

  • 2개의 피연산자를 서로 비교하여 둘 사이의 관계가 관계 연산자와 일치하는지 여부를 확인
  • 결과 값: 참(true), 거짓(false)

 

 

 

🔸우선 순위

  • 산술 연산자보다 우선순위가 낮음

C, C++

 

 

 

🔸타입 변환

  • 묵시적 타입 변환이나 명시적 타입 변환 가능

 

 

 

 

 

 

 

✅ 논리 연산자

  • 논리곱, 논리합, 부정 등
  • 피연산자 및 결과 값: 참(true), 거짓(false)

 

 

 

 

🔸우선 순위

 

 

 

🔸단락 평가(short-circuit evaluation)

  • 모든 논리 연산을 수행하지 않고도 수식의 값을 얻음

 

 

 

 

 

 

 

 

✅ 그 외 연산자

C, C++

  • 비트 단위 논리 연산자: &, ^, |, ~
  • 조건 연산자: 조건 ? 참인 경우 : 거짓인 경우

 

 

 

 

728x90
반응형

+ Recent posts