Language/Swift 수업
iOS 프로그래밍 기초 (4)
비코딩
2021. 9. 25. 04:06
if 문
Swift에서는 if문 다음의 실행 코드가 한 줄이라도 중괄호{ } 안에 작성
guard 문 (조건식이 거짓이면 실행)
guard <조건식> else {
// 조건식이 거짓일 때 실행될 코드
<코드 블록을 빠져 나갈 구문>
}
// 표현식이 참일 경우에 실행되는 코드
- else 절에서 코드 블록을 빠져 나갈 구문(return, break, continue, throw)을 반드시 포함
func multiplyByFive(value: Int?) {
guard let number = value, number < 5 else { // 거짓일때 실행
print("수가 없거나 5보다 크다.")
return
}
print(number*5) // 조건식이 참일 때 실행
}
multiplyByFive(value: 2) //10
multiplyByFive(value: nil) //수가 없거나 5보다 크다.
multiplyByFive(value: 7) //수가 없거나 5보다 크다.
switch-case 문 예제
let someCharacter: Character = "c"
switch someCharacter {
case "a":
print("The first letter of the alphabet")
case "b":
print("The second letter of the alphabet")
case "c":
print("someCharacter")
default:
print("Some other chracter")
}
// someCharacter
let weight = 60.0
let height = 170.0
let bmi = weight / (height*height*0.0001)
var body = ""
switch bmi {
case 40...:
body = "3단계 비만"
case 30..<40:
body = "2단계 비만"
case 25..<30:
body = "1단계 비만"
case 18.5..<25:
body = "정상"
default:
body = "저체중"
}
print("BMI:\(bmi), 판정:\(body)")
// BMI:20.76.., 판정:정상
var x : Int = 21
switch (x)
{
case 0...10 where x % 3 == 0 :
print("x는 0~10 사이의 3의 배수")
case 11...20 where x % 3 == 0 :
print("x는 11~20 사이의 3의 배수")
case 21...30 where x % 3 == 0 :
print("x는 21~30 사이의 3의 배수")
default:
print("Nothing")
}
// x는 21~30 사이의 3의 배수
fallthrough
case별로 빠져 나가지 않고
var x = 2
switch (x)
{
case 1:
print("여기부터 실행(1)")
fallthrough
case 2:
print("여기부터 실행(2)")
fallthrough
case 3:
print("여기부터 실행(3)")
fallthrough
default:
print("여기부터 실행(4)")
}
// 여기부터 실행(2)~(4)
함수 선언
func <함수명> (<매개변수 이름>:<매개변수 타입>, <매개변수 이름>:<매개변수 타입>, ...) -> <리턴값 타입> { <함수코드>}
func sayHello() { // 리턴값이 없으면 void 생략가능
print("Hello")
}
func message(name: String, age: Int) -> String {
return("\(name) \(age)")
}
내부 매개변수(parameter name) 이름과 외부 매개변수(argument label) 이름, 함수명(#function 리터럴)
func add(first x: Int, second y: Int) -> Int {
return(x+y) // 함수 정의할 때는 내부 매개변수명을 사용
}
add(first:10, second:20) // 함수 호출할 때는 외부 매개변수명을 사용
func add(x: Int, y: Int) -> Int {
print(#function) // add(x:y:)
return(x+y)
}
print(add(x:10, y:20))
func add(first x: Int, second y: Int) -> Int {
print(#function) // add(first:second:)
return(x+y)
}
print(add(first:10, second:20))
func add(_ x: Int, _ y: Int) -> Int {
print(#function) // add(_:_:)
return(x+y)
}
print(add(10, 20))
func add(_ x: Int, with y: Int) -> Int {
print(#function) // add(_:with:)
return(x+y)
}
print(add(10, with:20))
함수로 여러 결과 반환
func converter(length: Float) -> (yards: Float, inches: Float, meters: Float) {
let yards = length * 0.010936
let inches = length * 0.393701
let meters = length * 0.01
return (yards, inches, meters)
}
var lengthTuple = converter(length:150)
print(lengthTuple) // yards: 1.6404, inches: 59.05515, meters: 1.5
print(lengthTuple.yards) // 1.6404
print(lengthTuple.inches) // 59.05515
print(lengthTuple.meters) // 1.5
import Foundation
func calculate(x: Int, y: Int) -> (sum : Int, sub : Int, div : Double, mul : Int)
{
let sum = x+y
let sub = x-y
let div = Double(x)/Double(y) // Swift에서는 같은 자료형끼리만 연산 가능
let mul = x*y
return (sum, sub, div, mul)
}
var result = calculate(x:8, y:6)
print(result.sum) // 14
print(result.sub) // 2
print(String(format: "%.3f",result.div)) // 1.333
print(result.mul) // 48
print(type(of:calculate)) //(Int, Int) -> (sum: Int, sub: Int, div: Double, mul: Int)
가변 매개변수
함수가 가변 매개변수를 받기 위해서 ... (3개의 점)을 사용
func add(numbers:Int...) {
var sum:Int = 0
for num in numbers {
sum += num
}
print(sum)
}
add(numbers:1,2,3,4,5,6,7,8)
// 36
inout 매개변수 : call by reference 구현
var myValue = 10
func doubleValue (value: inout Int) -> Int {
value += value
return(value)
}
print(myValue) // 10
print(doubleValue(value : &myValue)) //20
print(myValue) //20
[iOS프로그래밍기초(21-2학기)한성현교수님 강의 내용 변형 및 요약]