기초

6.Operators

섭섭's 2024. 6. 1. 01:57

 

프로그래밍에서 연산은 계산과 동일한 뜻 입니다.

 

또한 연산을 사용하는 문자를 "연산자(Operators)" 라고 부릅니다.

 

연산자는 피연산자 수에 따라서 3가지로 분류할 수 있습니다.

 

+a : 피연산자가 하나만 있는 경우에는 단항연산자(Unary Operators) 라고 부릅니다

 

a + b : 피연산자가 두개라면 이항연산자(Binary Operator) 라고 부릅니다.

 

a ? b : c :피연산자가 세개라면 삼항연산자(Ternary Operator)라고 부릅니다.

 

*피연산자가 네개인 경우는 없습니다.

 

연산자가 포함된 코드를 작성할 때에는 공백을 잘 작성해야 합니다.

 

공백의 존재유무에 따라 연산자가 제대로된 동작을 하지 않을 수 있습니다.

 

단항연산자의 경우 아래의 예시처럼 공백없이 붙여야 합니다

+a

 

만약 아래의 예시처럼 공백이 있을경우 해당 코드는 컴파일 되지 않을 것 입니다.

+ a

 

이항연산자의 경우에는 조금 이야기가 다릅니다.

1. a + b
2. a+b

 

공백을 주어도 되고 붙여도 됩니다.

 

다만

1. a +b
2. a+ b

 

위의 예시처럼 어느 한쪽에만 공백을 주어서는 안됩니다.

 

연산자 위치에 따른 분류

연산자는 피연산자의 앞이나 뒤에 올 수 있습니다.

 

만약 +a 처럼 연산자가 앞에 있으면 전치연산자(Prefix Operator)

 

반대로 a+처럼 연산자가 뒤에 있으면 후치연산자(Postfix Operator) 라고 부릅니다.

 

이항연산자의 경우에는 a+b 처럼 두 피연산자 사이에 있기 때문에 중치연산자(Infix Operator) 라고 부릅니다.

 

 

연산자의 우선순위

소스코드가 " a + b * c " 라는 코드가 있을 때

 

예제의 순서대로 연산이 이루어 지게 됩니다.

 

스위프트가 제공하는 모든 연산자는 우선순위를 가지고 있습니다.

 

나머지는 너무 간단한 거니 넘어가겠습니다.

 

 

사칙연산

사칙연산은 간단하기 때문에 빠르게 넘어가겠습니다.

 

 

a는 12

b는 30

으로 선언해 놨다고 가정하겠습니다.

 

+ 연산자에는 2가지 버전이 있습니다.

 

+a 를 실행해 보면 12라는 결과값이 나옵니다.

 

a + b 를 실행하면 42 라는 결과값이 나옵니다.

 

보통은 위의 a + b 연산자처럼 이항연산자를 사용합니다.

 

12 + 30 이나 a + 30 처럼 마음대로 조합할 수 있습니다.

 

-연산자도 +연산자와 마찬가지입니다.

 

*연산자는 이항연산자로만 사용합니다.

 

/연산자도 이항연산자로만 사용합니다

 

Overflow

let num: int8 = 9*9

 

예제로 상수를 하나 선언하고 9 * 9 를 저장하겠습니다.

 

해당 코드는 정상적으로 실행되는 코드 입니다.

 

Int8은 81을 저장할 크기가 나오기 때문에 아무런 문제가 없습니다.

 

하지만 9 * 9 * 9 를 한다면 int 8이 저장할 수 있는 값 보다 커지기 때문에 컴파일 오류가 납니다

 

이런식으로 타입에 저장할 수 있는 값의 범위를 벗어나는 것을 Overflow 라고 합니다.

 

해결법은 간단합니다. 더 큰 타입으로 바꿔주면 됩니다.

 

let num: Int = 9 * 9 * 9

 

이런식으로 저장하게 되면 문제가 해결될 것 입니다.

 

== 연산자는 Equal to Operator 라고 부릅니다.

a == b 가 동일하다면 스위프트는 true를 리턴하고

동일하지 않다면 false를 리턴합니다

 

"swift" = "Swift'

 

이런식으로 대소문자가 다르면 스위프트는 false를 출력합니다.

 

!= 연산자는 Not equal to Operator 라고 부릅니다

값의 동일성을 비교하는 연산자 입니다.

 

Logical operators ( 논리연산자 )

 

Logical NOT Operators 

가장 단순한 논리연산자 입니다.

참과 거짓을 뒤집는 연산자 입니다.

 

간단하게 설명하면 true 를 false로 바꾸고

 

false를 true로 바꾸는 연산자라고 이해하시면 됩니다.

 

또한 단항연산자이며, 전치연산자 입니다.

 

사용시에는 피연산자 앞에 !를 적으면 됩니다.

 

만약 !true라는 명령어를 컴파일 하게 된다면 

 

false 라는 값을 출력하게 됩니다.

 

Logical AND Operators

 

연산자는 && 문자 2개가 붙어있는 형태 입니다.

 

모든 피연산자의 결과가 true 여야 true가 되는 연산자 입니다.

 

Logical OR Operators

 

연산자는 || 2개가 붙어있는 형태 입니다.

 

어느 한쪽이라도 true 가 될때 true가 되는 연산자 입니다

'기초' 카테고리의 다른 글

8.Range Operators  (0) 2024.06.02
7.Conditional Statements  (1) 2024.06.02
5.Boolean,String,Type Inference  (0) 2024.05.31
4.메모리와 Int Float  (0) 2024.05.30
3.Scope -1  (0) 2024.05.26