- 스위프트 언어 자체에 대해 알아본 데에 이어,
- 이번 글에서는 스위프트 프로그래밍 언어의 변수와 조건문에 대해 알아보려고 한다.
스위프트 변수란?
- 스위프트의 변수란 프로그램에서 데이터를 저장하는 공간을 의미한다.
- 변수는 이름, 형, 메모리 주소, 값, 영역 등으로 특성을 구분 지어 볼 수 있다.
- 이름은 말 그대로 변수를 구분하기 위해 사용되는 '이름'이다.
- 형은 타입이라고도 하는데, 데이터의 자료형을 의한다.
- 값은 변수에 들어가는 데이터를 의미한다.
- 영역은 변수가 사용 가능한 범위를 의미한다.
스위프트 변수 문법
var name: Type = value
- 위 코드에서 var은 변수를 선언하기 위한 키워드이고,
- name은 변수명으로써 개발자가 원하는 이름을 임의로 설정할 수 있다.
- Type은 변수의 자료형으로 뒤에서 더 자세히 다룰 것이다.
- value는 변수에 대입되는 값이다.
스위프트 변수 이름 규칙
- 개발자들이 좋은 변수 이름을 짓는 것이 가장 어렵다는 농담을 할 정도로 변수 이름은 중요하다.
- 변수 이름을 짓는 데에는 규칙이 있다.
- 우선, 변수의 이름으로 시스템 예약어를 사용할 수 없다.
- 숫자는 변수의 이름으로 시작될 수 없다.
- 하지만, 숫자는 변수의 이름에 포함될 수는 있다.
- 즉, example1은 변수의 이름으로 사용이 가능하지만, 1example은 변수 이름으로 사용할 수 없다.
- 변수의 이름에는 공백이 포함될 수 없다.
- 마지막으로 관습적으로 변수 이름은 소문자로 시작되지만 단어를 구분 짓기 위해서는 대문자를 사용한다.
- 예를 들면, lowerCamelCase 같은 변수 이름이 있다.
스위프트 변수 선언과 할당
var x: Int
- 위 변수 문법에서 봤듯이 변수는 var이라는 키워드를 통해 선언이 된다.
var x: Int = 3
- 그리고 변수의 값 할당은 대입 연사자인 = 을 통해 할당된다.
스위프트 자료형
- 변수의 자료형에는 정수 Int, 실수 Double, 문자열 String, 불리언 Bool을 비롯해서 여럿 있다.
- 하지만 이 4가지가 가장 대표적이고 많이 쓰인다.
- 정수 자료형 Int는 정수형 데이터가 사용되는데, +와 -를 포함한 정수 데이터가 사용된다.
- 불리언 Bool은 true(참), false(거짓) 단 두 가지 값을 갖는 자료형이다.
- Double은 실수형 데이터인데, 64비트의 부동소수점을 사용해서 소수점 15자리까지 표현이 가능하다.
- String은 문자열이라고도 부르는데, 유니코드로 이뤄져 있고 쌍 따옴표를("") 붙여 문자를 표현한다.
변수 vs 상수
- 사실 변수와 상수의 차이점은 이름에서 그대로 나타난다.
- 변수는 변할 수 있는 값이고 상수는 변할 수 없는 값이다.
- 변수는 var 키워드를 통해 선언되고, 상수는 let 키워드를 통해 선언된다.
- 아래는 번수의 예시이다.
var gender:String = "boy"
var familyNumber:Int = 4
var hasPet:Bool = false
var speed:Double = 11.5
산술 연산자
- +, -, *, /, % 를 산술 연산자라고 한다.
- +는 더하기, -는 빼기, *는 곱하기, /는 나누기, %는 나머지를 뜻한다.
비교 연산자
- 비교 연산자에는
==
, >=
, <=
, >
, <
등이 있다. ==
은 같다라는 의미이고, >=
는 크거나 같다, <=
는 작거나 같다, >
는 크다, <
는 작다이다.
논리 연산자
- 논리 연산자에는
&&
, ||
, !
가 있는데 &&
는 교집합의 의미 즉, 두 조건 다 true 여야 true 값이 반환된다.||
는 합집합의 의미로 둘 중 하나가 true 이면 true 값이 반환된다.!
는 무조건 반대의 값을 반환된다.
조건문
- 조건문은 어떠한 값이 특정 조건에 해당 할 때만 선택적으로 코드를 실행시켜주는데,
- 대표적으로 if-else 문과 switch-case 문이 있다.
- if-else 문의 문법은 다음과 같다.
if 조건 {
} else {
}
- switch-case 문은 스위프트에서 워낙 강력하게 구현되어 있어서 나중에 더 자세히 알아보도록 하겠다.
조건문 예시
let num:Int = 10
var isEvenNumber:Bool
if num%2 == 0 {
isEvenNumber = true
} else {
isEvenNumber = false
}
print(isEvenNumber)
var testNum:Int = -10
if testNum > 0 {
testNum = testNum * 1
} else {
testNum = testNum * -1
}
print(testNum)
var number = 10
var divider = 2
if divider == 0 {
print("divider의 값을 0이 아닌 값으로 바꿔주세요.")
} else {
var resultNum:Int = number / divider
print("나눈값은 \(resultNum) 입니다.")
}
var minusNum1:Int = 3
var minusNum2:Int = 5
var temp:Int
if minusNum1 < minusNum2 {
temp = minusNum2
minusNum2 = minusNum1
minusNum1 = temp
}
print(minusNum1 - minusNum2)