본문 바로가기

대학교 - 강의/iOS프로그래밍기초

iOS프로그래밍기초 3주차 레포트

3주차 강의는 실습코드들을 테스트해보며 변형하는 실습으로 swift 언어의 문법을 숙달하였다.

다음은 금일 강의를 들으며 실습한 코드들이다. 

 

optional 실습코드

var x : Int =11 // nil을 집어넣으면 오류로그가 뜸.

print(x) // 11

var y : Int? // 기본값인 nil

print(y) //nil

var z : Int !=11

print(z) // optional(11)

 

optional 실습코드2

print(Int("1111")) //optional(1111)

print(Int("1.13")) //nil

print(Int("Kyung")) //nil

print(Double("1111")) //optional(1111.0)

print(Double("1.13")) //optional(1.13)

print(Double("Kyung")) //nil

 

unwrapping 실습코드

var x : Int?

var y : Int =0

x =10 // x = x!+10으로 바로 넘어가면, print에서 오류가 발생함

x = x !+11

y = x !

print(x)

print(x !) //nil값을 언래핑하면 오류가 뜸

print(y)

 

optional binding

var x : Int?

x =10

if let xa = x {

print(x !) //10}

else{ print("nil") }

var x1 : Int?

if var xb = x1{

print(x1 !) }

else{ print("nil") //nil }

 

optional binding2

var x : Double?

var y : String?

x =11.5

y ="매운갈비조림"

if let x = x, let y = y {

print(x,y) // 11.5 매운갈비조림

}

else{

print("nil")

}

 

두 가지 Optional 형 실습코드

let x : Int? =1

let y : Int !=10

let z = x

print(x,y,z) //Optional(1) Optional(10) Optional(1)

print(type(of:x),type(of:y),type(of:z)) //Optional<Int> Optional<Int> Optional<Int>

let a : Int = y

print(a) //10

let b = y

print(b) //Optional(10)

let c = y +20

print(c) //30

 

Any와 와 AnyObject

var x : Any ="kalbi"

print(x,type(of:x)) //kalbi String

x =10

print(x,type(of:x)) //10 Int

x =11.52

print(x,type(of:x)) //11.52 Double

 

비교 연산자

class Person {}

let person1 = Person()

let person2 = person1

let person3 = Person()

print(person1 === person2) // true

print(person1 === person3) // false

범위 연산자 과제 실행결과

let Gogis = ["갈비","목심","등심","살치살","부채살","안창살"]

for Gogis in Gogis[...2]{

print(Gogis) //갈비 목심 등심

}

for Gogis in Gogis[..<2]{

print(Gogis) //갈비 목심

}

 

_로 참조체(i) 생략 가능

for _ in 1...5 {

print("경준현", terminator:"") //경준현경준현경준현경준현경준현

}

print("\n")

for i in 1...5 {

print("\(i) 안녕")

}

//1 안녕

2 안녕

3 안녕

4 안녕

5 안녕

 

배열의 항목 접근

let names = ["A", "B", "C", "D", "D", "D", "D", "D"]

for namename in names {

print(namename,terminator:"") //ABCDDDDD

}

 

dictionary의 의 항목 접근

let numberOfLegs = ["Spider": 8, "Ant": 6, "Dog": 4,"Human" : 2]

//dictionarykey:value형식의 배열

for (animalName, legCount) in numberOfLegs {

print("\(animalName)s have \(legCount) legs")

}/*Ants have 6 legs

Spiders have 8 legs

Humans have 2 legs

Dogs have 4 legs*/

 

 

while 반복문

var myCount =0

while myCount <1000{

myCount +=1

}

print(myCount) //1000, 999때 마지막으로 돌며 1을 더 더하기때문

 

repeat-while 반복문

var i =10

repeat {

i = i -1

print(i, terminator:" ") //9 8 7 6 5 4 3 2 1 0

} while (i >0)

 

반복문에서 빠져나오기 빠져나오기(break)

for i in 1..<10 {

if i >5 {break}

print(i,terminator:"") //12345

}

 

continue

for i in 1...50{

if i % 5 ==0{

print(i,terminator:"/") //5/10/15/20/25/30/35/40/45/50/

}

continue

}

 

if문 문 조건에서 콤마의 의미 의미

var a =1

var b =2

var c =3

var d =4

if a < b && d > c {

print("yes") //yes

}

if a < b, d > c {

print("yes") //yes

}

 

if -else

var x =111452623672

if x % 2 ==0 {

print("짝수입니다")

}else{

print("홀수입니다")

}

 

다중 if-else

var num =21

if (num ==1 || num ==3){

print("당신은 남성이군요!\n")

}else if (num ==2 || num ==4){

print("당신은 여성이군요!\n")

}else {

print("당신은 대한민국 사람이 아니군요!\n")

}

 

다중 if-else: BMI 계산 결과 판정

let weight =80.0

let height =170.0

let bmi = weight /(height *height *0.0001) //kg/m*m

var body =""

if bmi >=40{

body ="3단계 비만"

} else if bmi >=30 , bmi <40 {

body ="2단계 비만"

} else if bmi >=25 , bmi <30 {

body ="1단계 비만"

} else if bmi >=18.5 , bmi <25 {

body ="정상"

} else {

body ="저체중"

}

print("BMI:\(bmi), 판정:\(body)")

//BMI:27.681660899653977, 판정:1단계 비만