iOS 앱 개발자 독학 D+4 [Swift_연산자]

Dev-dinx·2021년 1월 7일
0
post-thumbnail

연산자

1. 할당 연산자

  • 값을 할당 할 때 사용하는 연산자이다.

    A = B
    (A에 B를 할당)


var aType:Int = 5
var bType:Int = 10

aType = bType // aType = 10 

2. 산술 연산자

  • 산술 연산자는 대체로 수학에서 쓰이는 연산과 같은 역할을 수행한다.
    1. A + B
      (A와 B를 더한 값을 반환한다)
    2. A - B
      (A에서 B를 뺀 값을 반환한다)
    3. A * B
      (A와 B를 곱한 값을 반환한다)
    4. A / B
      (A를 B로 나눈 값을 반환한다)
    5. A % B
      (A를 B로 나눈 나머지 값을 반환한다)

let type1:Int = 1
let type2:Int = 2

type1 + type2 // 3
type1 - type2 // -1
type1 * type2 // 2
type1 / type2 // 0
type1 % type2 // 1

3. 비교 연산자

  • 비교 연산자는 두 값을 비교할 때 사용하는 연산자이다.
    1. A == B
      (A와 B가 같은 값인지 비교하여 Bool 값을 반환
    2. A >= B
      (A가 B보다 크거나 같은 값인지 비교하여 Bool 값을 반환)
    3. A <= B
      (A가 B보다 작거나 같은 값인지 비교하여 Bool 값을 반환)
    4. A > B
      (A가 B보다 큰 값인지 비교하여 Bool 값을 반환)
    5. A < B
      (A가 B보다 작은 값인지 비교하여 Bool 값을 반환)
    6. A!= B
      (A와 B가 다른 값인지 비교하여 Bool 값을 반환)
    7. A === B
      (A와 B가 참조(레퍼런스)타입 일 때 A와 B가 같은 인스턴스를 가리키는 지 비교하여 Bool 값을 반환)
    8. A !== B
      (A와 B가 참조(레퍼런스)타입 일 때 A와 B가 같지 않은 인스턴스를 가리는 지 비교하여 Bool 값을 반환)
    9. A ~= B
      (A와 B의 패턴이 매치되는지 확인하여 Bool 값을 반환)

let type가:Int = 1
let type나:Int = 3

type가 == type나 // false
type가 >= type나 // false
type가 <= type나 // true
type가 > type나 // false
type가 < type나 // true
type가 != type나 // true
type가 ~= type나 // false

4. 삼항 조건 연산자

  • 피 연산자가 세 개인 삼항 조건 연산자이다.

    Question? A : B (Question(Bool 값)이 참이면 A를, 거짓이면 B를 반환

type가 > type나 ? type가 : type나 
// 'type가(1)'가 'type나'(3) 보다 큽니까? -> 거짓이므로 'type나'의 값인 '3' 반환

5. 범위 연산자

  • 범위 연산자는 값의 범위를 나타내고자 할 때 사용한다.
    1. A...B
      (A부터 B까지의 수를 묶어서 범위로 표현.A와 B를 포함한다)
    2. A..<B
      (A부터 B미만 까지의 수를 묶어서 범위로 표현.A는 포함하고 B는 포함하지 않는다)
    3. A...
      (A 이상의 수를 묶어 범위로 표현.A를 포함)
    4. ...A
      (A 이하의 수를 묶어 범위로 표현.A를 포함)
    5. ..<A
      (A 미만의 수를 묶어 범위로 표현.A를 포함하지 않음)

var type3:Int = 100
var type4:Int = 1000

type3...type4
type3..<type4
type3...
...type3
..<type3

6. 부울 연산자

  • 불리언 값의 논리 연산을 할 때 사용.

    NOT(부정) 부울 연산자 : !B : B(불리언 값)의 참, 거짓을 반전한다.
    AND 부울 연산자 : A && B : A와 B의 불리언 AND 논리 연산을 실행한다.
    OR 부울 연산자 : A||B : A와 B의 불리언 OR 논리 연산을 실행한다.

  • Example
    true and false ==> false
    true and true ==> true
    false and false ==> false
    true or true ==> true
    true or false ==> true
    false or false ==> false
    Not true ==> false
    Not false ==> true

var someTrue:Bool = true
var someFalse:Bool = false

!someFalse // true
!someTrue // false
someTrue && someFalse // false
someTrue || someFalse // true

7. 비트 연산자

  • 비트 연산이란 2진법으로 표기된 숫자를 연산하는 것을 말한다.
        OR 연산 : A|B : A와 B의 OR 논리 연산을 실행한다.
        AND 연산 : A & B : A와 B의 AND 논리 연산을 실행한다.
        XOR 연산 : A^B : A와 B의 XOR 연산을 실행한다.
        NOT 연산 : ~A : A의 비트를 반전한 결과를 반환한다.
        비트 이동(쉬프트) 연산자 : A >> B , A << B : A의 비트를 B만큼 이동한다.
     
           OR 연산은 두 개 중에 하나라도 결과가 참이면 참
           AND 연산은 두 개 다 참인 경우에만 참.
           NOT 연산은 값이 반대가 되는 것
           XOR 연산은 같은 값을 가지면 거짓, 다른 값을 가지면 참
var someBit:Int = 8
var someBite:Int = 4

someBit|someBite // 12
someBit & someBite // 0
someBit ^ someBite // 12
~someBit // -9
someBit >> 2 // 2 (someBit = 1000 , 오른쪽으로 2칸 이동해서 이진법 10으로 변환, 이진법 10은 십진법 2)

  • 비전공자로서 비트 연산에 대한 개념이 아예 없다시피 하여 비트 연산에 대해 따로 찾아봤습니다.

OR 연산은 두 값이 공통되지 않아도 값이 있다면(1), 그 값을 가져옵니다.
AND 연산은 두 값 중 공통된 값만을 가져옵니다.
NOT 연산은 그 값의 반대 값을 가져옵니다.
XOR 연산은 공통된 값을 (0) 또는 거짓으로, 공통되지 않은 값을 (1) 또는 참으로 가져옵니다.
Shift 연산은 그 값의 자리수를 꺽새 방향으로 숫자만큼 밀어냅니다.

마무리

슬슬 컴퓨터 지식이나 수학적 지식이 요구되는 단계가 온 것 같습니다. 문법 책으로 공부하고 있기 때문에 컴퓨터 지식에 대해서 제대로 나와있진 않더라구요.

예를 들면, 논리 연산이나 XOR 연산에 대한 어떤 설명도 나와있지 않고 그냥 표시하는 방법만 알려주기 때문에 어떤 뜻인지 이해하기가 어려워 따로 찾아봐야 했습니다.

컴퓨터 과학에 대한 지식과 자료구조, 알고리즘에 대한 공부도 병행해야 할 것 같습니다.

감사합니다 : )

profile
비전공자 iOS 개발자 준비중입니다 :)

0개의 댓글