연산자와 표현식

jonghwan·2022년 9월 23일
0

멋쟁이사자처럼

목록 보기
10/28
post-thumbnail

표현식 구문

var myResult = 1 + 2

'=' 할당 연산자
덧셈의 결과를 myResult라는 이름의 변수에 할당한다.

피 연산자
숫자 외에도 변수, 상수의 혼합도 가능 // 1, 2

'+' 연산자
1과 2을 더하는 데 사용

기본 할당 연산자

앞서 본 할당 연산자 ( " = " 연산자)는 표현식의 결과를 변수에 저장하는 역할을 한다.

기본적으로 = 할당 연산자는 두 개의 피 연산자를 받는다.

왼쪽의 피연산자 : 값을 할당받는 변수 또는 상수

오른쪽의 피연산자 : 할당할 값, 대체로 여러 종류의 산술식이거나 논리식을 수행하는 표현식으로 왼쪽에 그 결과 반영

var myResult = 1 + 2
var x: Int?  //옵셔널 Int 변수 선언
var y = 10   //두 번째 Int 변수 선언과 초기화
x = 10       // x에 값 할당
x = x! + y   // 언래핑한 x와 y의 합을 x에 할당
x = y        // y의 값을 x에 할당

산술 연산자

Swift는 수학적 표현식을 생성하기 위하여 다양한 연산자를 제공한다.

이들 연산자 대부분은 두 개의 피연산자를 받는 이항 연산자(binary operator)다.

양수를 음수로 만들어주는 단항 음수 연산자(unary negative operator)는 예외적으로 하나의 피연산자를 받는다.

두 개의 피연산자를 받는 뺄샘 연산자(subtraction operator)와 대조된다.

var x = -10
x = x - 5

하나의 표현식 안에 여러 개의 연산자를 사용할 수도 있다.

x = y * 10 + z - 5 / 4

복합 할당 연산자

Swift는 산술 또는 논리 연산과 할당 연산자를 결합하기 위해 설계된 연산자들을 다양하게 제공한다.

이러한 연산자들은 연산을 수행한 결과를 피연산자들 중 하나에 저장하기 위해 주로 사용한다.

x = x + y

x += y

위 두 표현식 모두 변수 x에 담긴 값을 변수 y에 담긴 값에 더한 결과를 변수 x에 저장한다.

비교 연산자

스위프트는 비교를 수행하는 데 유용한 논리 연산자들을 가지고 있다.

이들 연산자 모두는 비교 결과에 따라 불리언 결과를 반환한다.

이들 연산자들은 두 개의 피연산자들 가지고 작업한다는 점에서 이항연산자(binary operator)다.

비교 연산자는 프로그램 흐름 제어 로직을 만드는 데 가장 많이 사용된다.

비교 결과는 Bool 타입의 변수에 저장된다.

if x == y {
  // 작업수행
}

// 하나의 값이 다른 값과 일치하는지를 바탕으로 구성된 if 구문

불리언 논리 연산자

NOT ( ! ) 연산자

단순히 불리언 변수의 현재 값 또는 표현식의 결과를 반전시킨다.

flag라는 이름의 변수가 현재 true라 한다면 변수명 앞에 ! 문자를 두면 값이 false로 바뀔 것이다.

var flag: Bool = true    // 변수는 true다.
var secondFlag = !flag   // secondFlag에는 false가 저장된다.

OR ( || ) 연산자

두 개의 피연산자 중 하나가 true라고 판단되면 true를 반환하고

두 개의 피연산자 중 어느 것도 true가 아니라면 false를 반환한다.

if (10 < 20) || (20 < 10) {
	print("Expression is true")
}

범위 연산자

Swift는 값이 범위를 선언할 수 있도록 하는 몇 가지 연산자가 포함되어 있다.

이들 연산자는 프로그램에서 반복 작업을 할 때 매우 중요하다.

닫힌 범위 연산자 (closed range operator)

x...y   // x로 시작하여 y로 끝나는 숫자의 범위. x와 y는 이 범위에 포함된다.

5...8   // 5 ,6 ,7 ,8

반 개방 범위 연산자 (half-open range operator)

x ..<y   // x로 시작하는 모든 숫자를 포함하지만 y는 포함되지 않는다.

5..<8   // 5 ,6 ,7

단방향 범위 연산자 (one-sided range operator)

그 범위 앞의 시작 또는 끝에 도달할 때까지(또는 다른 조건이 충족할 때까지) 지정된 범위 방향으로 최대한으로 확장할 수 있는 범위를 지정한다.

범위 선언부의 한쪽 부분을 생략하여 선언한다.

x...   
...y
2...  // 예를 들어 문자열의 길이와는 상관없이 문자열의 세 번쩨 문제(인덱스 2) 부터 시작해서 마지막 문자들을 지정하는 범위
...6  // 첫 번째 위치의 문자부터 7번째 문자(인덱스 6)까지의 범위

삼항 연산자

Swift는 코드 내에서 판단을 간단히 하기 위한 방법으로 삼항 연산자(ternary operator)를 지원한다.

조건문 ?(true)인 경우의 표현식 : 거짓(false)인 경우의 표현식

삼항 연산자의 동작 방식은 true 또는 false를 반환하는 표현식을 '조건문' 위치에 두는 것이다.

만약 그 결과가 true이면 '참인 경우의 표현식'이 수행된다.

만약 그 결과가 false이면 '거짓인 경우의 표현식'이 수행된다.

let x = 10
let y = 10
print("Largest number is \(x > y ? x : y)")
// Largest number is 20

0개의 댓글