Playground에서 정지 버튼을 누르고 좌측 숫자 옆에 재생 버튼을 누르면 그 행까지만 실행한다. (Shfit + return과 동일) Shift + return을 반복해서 한줄씩 내려가며 디버깅하기 좋음.

 

자료형

Int정수 (기본적으로 Int만 써도 Int64로 설정된다. 그보다 작은 단위를 쓰려면 Int8, Int16, Int32 등으로 사용.)

UInt : 0 ~ 양의 정수. Int의 64비트 표현 범위가 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 인데 이걸 음수의 표현 범위를 전부 양수로 돌린다. 따라서 0부터 (9,223,372,036,854,775,807 + 9,223,372,036,854,775,808)까지 표현이 가능하다. 즉, 최대로 표현할 수 있는 양의 정수 크기는 Int일 때의 9,223,372,036,854,775,807 x 2 + 1 이다.

Float, Double실수 (Float은 32비트, Double은 64비트다. 단, Float도 Int 의 9,223,372,036,854,775,807 보다는 큰 수를 표현할 수 있다.)

Sring, Character문자

Bool : /거짓

 

var : 변수

let상수

\(변수 또는 계산식) : 문자열 내에 이런 형태가 있을 경우 문자가 아니라 변수나 계산식을 의미한다.

var helloString:String = "Score"        // 문자열이 들어갈 수 있다.
var helloCharacter:Character = "A"      // 단일 문자만 들어갈 수 있다.
print("\(helloString) \(helloCharacter)")   // "Score + 공백 1칸 + A"

var helloString1 = "Good"                        // 생략하면 스위프트가 알아서 판단함.
var helloString2 = helloString1 + " morning"     // 문자열끼리 더할 수 있다.
print(helloString2)
print("\(helloString2) friends!")		// \( )는 문자 안의 변수나 계산식이다.

결과 :

Score A
Good morning
Good morning friends!

 

 

 

문법

< 변수 >

var height:Int = 170    / Int는 생략하고 var height = 170으로 입력하면 스위프트가 알아서 판단한다.

var weight:Double = 62.5    / Double은 생략하고 var weight = 62.5로 입력하면 스위프트가 알아서 판단한다.

var itemCount1:Int = 10     // 정수로 선언.
print(itemCount1)

var itemCount2 = 10         // 생략하면 스위프트가 알아서 판단함. 위와 같다.
print(itemCount2)

var itemCount3:Double = 10  // 실수로 선언.
print(itemCount3)

var itemCount4 = 10.0       // 생략하면 스위프트가 알아서 판단함. 위와 같다.
print(itemCount4)

결과 : 

10
10
10.0
10.0

 

< 상수 >

let pi:Double =3.14    / 변하면 안 되는 상수(constant)를 선언할 때 사용한다. 아래 코드블럭 예를 참고.

var i = 2	// i = 2로 선언
print(i)	
i = i + 2	// i에 2가 더해져 4가 됨.
print(i)

let j = 2
print(j)
 j = j + 3	// 상수에 값을 더하라 해서 에러 발생!!

 

< 문자와 print()문, 기본 개행 >

파이썬의 print(" {} {} ".format(변수1,변수2)) 와 비슷하다. 문자열 내에 이 녀석이 있으면 문자가 아니라 변수나 계산식이다.

var helloString:String = "Score"        // 문자열이 들어갈 수 있다.
var helloCharacter:Character = "A"      // 단일 문자만 들어갈 수 있다.
print("\(helloString) \(helloCharacter)")   // "Score + 공백 1칸 + A"

var helloString1 = "Good"                        // 생략하면 스위프트가 알아서 판단함.
var helloString2 = helloString1 + " morning"     // 문자열끼리 더할 수 있다.
print(helloString2)
print("\(helloString2) friends!")		// \( )는 문자 안의 변수나 계산식이다.

결과 :

Score A
Good morning
Good morning friends!

스위프트는 print()를 하면 라인 하나에 하나씩 출력되는 파이썬과 같다. 따라서 다음 프린트문 넘어가기 전에 \n을 하면 개행을 2번 한 것과 같은 결과가 나온다.

print("Hello world\n")  // Hellow world를 찍어라. (기본적으로 파이썬처럼 한 줄에 하나의 명령이 들어가서 자동 개행된다.) (자바는 개행을 수동으로 해줘야 함.)
print("Hello world\n")  // Hellow world를 찍고 개행을 해라. (기본 개행에 \n개행을 한 번 더 해서 2번 개행된다.)
print("\nHello world")  // 개행을 하고 Hellow world를 찍어라.
print("\tHello world")  // 탭을 하고 Hellow world를 찍어라.
print("\n\tHello world")    // 개행을 한 다음 탭을 하고 Hello world를 찍어라.

print("\(3+2)") // \( )에 의해 변수 또는 계산식이 된다.
print("3+2")    // "3+2"라는 문자로 인식.

결과 :

Hello world

Hello world


Hello world
	Hello world

	Hello world
5
3+2
2
4
2

 

< True or False >

Bool 참/거짓

var diet:Bool = false	// diet의 자료형은 Bool이고, 값은 false다.
print(!diet)		// (!=not)(diet=false) -> not false -> true

if(diet == false) {	// (diet = false)니까 true! if문 실행!

}
if(!diet) {		// (!diet)는 true니까 if문 실행.

}

 

< 형변환 >

1. Int ⟷ Double 형변환 : Int와 Double은 같이 연산이 불가능하다.

var intValue:Int = Int(123.75) // 형변환 없이 Int로 선언한 변수에 123.75를 입력하면 오류 발생.
print(intValue)

var price:Int = 100
var totalPrice = Double(price) * 1.1  // 그냥 더하면 에러남. Double로 형변환 해야 계산됨.
print(Int(totalPrice))

결과 : 

123
110

 

2. 숫자 → 문자의 형변환 : 문자 변수 내에 숫자 변수를 넣기 위해선 형변환이 필요하다.

(주의! 문자열 내에 \(변수 또는 계산식)을 삽입하는 것과 혼동하지 말자. 문자 + 문자에 문자가 아닌 다른 자료형이 들어가면 에러가 발생하기 때문에 형변환이 필요하다. 아래 코드블럭을 참고하자.)

var maskCount:Int = 100
var message:String = "mask " + String(maskCount) + " remains"	// 형변환 하지 않으면 에러 발생.
print(message)

print("maks " + String(maskCount) +  " remains")	// 형변환 하지 않으면 에러 발생.
print("maks \(maskCount)" + " remains")
print("maks \(maskCount) remains")

결과 :

mask 100 remains
maks 100 remains
maks 100 remains
maks 100 remains

 

 

 

+ Recent posts