티스토리 뷰

프로그래밍

VB.Net 연산자 살펴보기

야라바 2015. 3. 17. 23:21
728x90

연산자(Operators)는 식별자와 리터럴 등을 대상으로 연산을 지시하는 문법 요소로 연산 대상의 개수에 따라 연산 대상을 한개만 취하는 단항 연산자(Unary Operator)와 연산 대상으로 2개를 취하는 이항 연산자(Binary Operator)로 나눌 수 있습니다. 단항 연산자에는 +, -, Not 3가지가 있습니다. +, - 단항 연산자는 연산 대상에 +1 또는 -1을 곱한 결과와 같고 Not은 연산 대상의 논리값을 True/False간에 뒤집는 결과를 가져옵니다. 특수한 단항 연산자로 연산 대상의 데이터형을 가져오는 TypeOf 연산자와 연산 대상의 주소를 가져오는 AddressOf 연산자도 있습니다. 



* 산술 연산자

  • ^ : 지수 연산. a^b 는 a를 b제곱한 결과로 2^4는 2*2*2*2의 결과와 동일합니다.
  • +, - : 두 연산 대상의 덧셈, 뺄셈
  • *, / : 곱하기, 나누기
  • \, Mod : 정수나누기의 몫과 나머지. 9\2 = 4, 9 Mod 2 = 1
  • <<, >> : 비트 스트링에 대한 산술시프트(Shift) 연산으로 특정 비트 값을 확인하거나 비트 단위 정보 저장에 사용합니다. 좌시프트는 맨우측에 0을 삽입하고 우시프트의 경우에는 부호가 있는 정수이고 음수값인 경우에는 부호비트 1을 맨좌측에 삽입하고 그이외의 경우에는 0을 삽입합니다.

* 비교 연산자 
두 연산 대상의 비교 결과로 True 또는 False를 리턴하는 연산자입니다.
  • <, <=, >, >= : a < b는 a가 b보다 작을 때 True를 리턴하는 방식으로 적용합니다.
  • =, <>: 두 연산 대상의 값이 같은지, 다른지 비교. 다른언어에서는 같은지 비교하는 것을 ==로 사용하여 대입 연산자와 차이를 두고 있으나 VB에서는 동일함에 주의해야 합니다.
  • Is, IsNot : a Is b는 두 연산 대상이 동일한 오브젝트를 참조할 때 True를 리턴합니다.
  • Like : "문자열 Like 패턴"의 형식으로 스트링이 지정에 패턴에 맞으면 True를 리턴합니다. 패턴은 ?는 임의 단일문자, #은 임의 단일 숫자, [문자범위]에 속하는 단일문자, [!문자범위]에 속하지 않는 단일문자, *는 0개 이상의 임의의 문자를 나타냅니다. 예를 들어 "good" Like "*oo*"는 True를 리턴합니다.

* 대입 연산자
l-value = r-value로 l-value는 값을 저장할 수 있는 저장소를 기술해야 하고 r-value 식을 결과를 l-value에 저장합니다. 다음의 연산자들은 a = a + b를 a += b로 축약시킨 대입 연산자입니다.
+=, -=, *=, /=, \=, ^=, >>=, <<=, &=

* 논리 및 비트 연산자
논리 연산자는 논리값을 가진 두 연산 대상의 논리 결과를 리턴하고 비트 연산자는 정수 값을 가진 두 연산 대상의 비트 값을 비트 단위로 연산한 정수값을 리턴합니다. VB.Net에서는 And, Or, Not, Xor를 논리 연산과 비트 연산에 동일하게 사용합니다. 논리 연산은 True/ False값으로 비트 연산은 각 비트의 0, 1값으로 연산을 수행합니다. And는 양쪽 모두 True 또는 1일때 True/1이고, Or는 하나라도 True/1이면 True/1입니다. Xor는 양쪽의 값이 동일할 때 True/1을 리턴하고 Not은 값을 뒤집습니다.

AndAlso 논리 연산자는 And의 축약형으로 첫번째 연산대상이 True가 아니면 두번째 연산 대상은 확인하지 않고 False를 리턴합니다. And는 두 연산 대상 모두를 확인합니다. OrElse는 Or의 축약형으로 첫번째 연산 대상이 True면 두번째 연산 대상은 확인하지 않고 True를 리턴합니다. Or의 경우는 양쪽을 모두 확인합니다.


* 문자열 연산자
문자열을 붙이는 &와 +가 있으나 다른 데이터형도 지원하는 & 연산자를 권하고 있습니다.

* 연산자의 우선순위
하나의 식에 여러 연산자가 섞여 있는 경우 어떤 부분을 먼저 연산할 것인지는 연산 결과에 큰 영향을 미칩니다. 수학 계산에서도 괄호>곱셈/나눗셈>덧셈/뺼셈의 순서를 적용하는 것 처럼 VB 연산자에도 우선 순위가 있습니다. 아래의 나열 순서를 적용합니다. 동일한 우선 순위일 경우에는 좌->우 방향으로 차례대로 처리합니다.
  • 산술 및 문자열 연산자
    ^ 지수연산
    +, - 단항연산
    *, / 곱셈, 나눗셈
    \, Mod  정수나누기 몫, 나머지
    +, - 덧셈, 뺄셈, 문자열연결
    & 문자열 연결
    >>, << 산술시프트
  • 비교 연산자
    =, <>, <, <=, >, >=, Is, IsNot, Like
  • 논리 및 비트 연산자
    Not 부정
    And, AndAlso 
    Or, OrElse
    Xor


728x90
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함