[인프런 강의] Swift 문법 -2
Basic operator textbook
- 기본 연산자 : 다른 언어들과 비슷하지만 그 이외에 스위프트에서만 쓰이는 문법 중점으로 소개
= : 값을 할당하는 연산자
... : 사용법, 정식명칭? (사용법은 조금 이따가 배울 것)
- Assignment Operator
= : 초기화를 하거나 값을 업데이트 하는 것
ex) let b = 10
let (x, y) = (1, 2) //스위프트에서 튜플이라는 것이 있음, 잘 쓰지는 않지만 이런 방법도 가능하다
- Arithmectic Operator
+, -, *, / 등 나머지 기본 연산자는 다른 언어와 동일
나머지 연산자: 9%4 나누고 1이 남는 것이 return 이 되는 것
- Compound Assignment Operator
+=: 누적 연산자 -> [a += 2] == [a = a+2]
- Closed Rang Operator
a...b: a부터 b값을 정해서 리턴 (중요한 것은! a와 b도 범위에서 포함되는 것)
ex) for index in 1...5 { ~
> Half-Open Range Operator: a..<b (중요한 것은! b는 포함되지 않는다는 것)
Control Flow(흐름 제어하기)
- for문, if문으로 실행 제어하기
>For-In문: 반복할 때 사용, 순서대로 반복할 때 쓰는 제어문
1
2
3
4
5
6
7
|
let names = ["A", "B', "C", "D"]
for name in names {
print{"Hello, \{name}!"}
}
//names에 있는 것들이 name으로 받아져서
//하나씩 출력된다!
|
위의 방법은 for문을 배열에 사용하는 방법
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
let minutes = 60
for tickmark in 0..<minutes {
//60번 반복하기
}
let minuteInterval = 5
for tickmark in stride(from: 0, to:minutes, by: minuteInterval) {
//0부터 60까지 5간격으로 실행
//0, 5, 10 ... 45, 50, 55(60까지 안감)
}
//But
let hours = 12
let hourInterval = 3
for tickmark in stride(form:3, trough: hours, by: hourInterval) {
//3부터 12까지 3간격으로 실행
//3, 6, 9, 12(끝까지 감)
}
|
반복문을 일정한 간격으로 동작하게 할 수 있는 다양한 방법
* 주의사항: swift에서 ++변수, --변수는 swift2에서까지밖에 안쓰고 현재는 없어졌음
+) stride에서 to와 trough의 차이점 : to는 마지막 숫자 포함하지 않음, trough는 마지막 숫자 포함!
- while문
- Swtich문: 스위프트에서는 유용하게 쓰임(중점으로 다루기)
스위치문의 개발 조건:
swtich 조건{
case value1:
//value에 조건이 맞으면 실행,,,
default는 무조건 작성해주어야 에러가 나지 않음을 유의하자
switch문은 break 쓰지 않아도 됨 자동으로 동작한다
case의 바디 부분을 작성하지 않으면 에러가 난다(항상 case의 바디 부분은 필수로 작성해주어야 함)
if문처럼 case 12..<100: 처럼 범위 조건을 걸어서 사용할 수 있다!
+) 참고: case(0, _): 일때 여기서 언더바(_)는 어떤 조건이 들어가도 상관이 없다는 뜻이다
if문과 switch문 참고 기본 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
//: Playground - noun: a place where people can play
import UIKit
let age = 18
if age < 3 {
print("baby")
}else if age >= 3 && age < 20 {
print("child")
} else {
print("adult")
}
switch age {
case 0, 1, 2:
print("baby")
case 21:
print("adult")
case 3...19:
print("child")
default:
print("none!")
}
|
Function
한마디로 실행할 수 있다는 뜻, 함수를 불러온다 = 함수를 call한다
주어진 동작에서 값을 입력하고, 값을 리턴하는 것을 함수라고 한다/ 기본 동작: 값이 들어가고 나오고
func 함수이름(파라미터) -> 리턴타입 { ~
단, 파라미터 없이도 가능하다, 리턴타입 없는 함수도 사용이 가능하다
리턴 타입을 정해주지 않으면 타입이 없는건데, 이건 없는 타입이 아니라 void 타입이라는 것을 알자
Function Parameter
- 디폴드 값으로 파라미터는 Argument 레이블로 쓰이고 있다?
1
2
3
4
5
6
|
func greet(person: String, from hometown: String) -> String {
return "Hello \(person)! Gald you could visit from \(hometown)."
}
//using this function
print(greet(person: "Bill", from: "Cupertino"));
|
이 코드에서 보면, 파라미터는 person: String 이 부분인데 Argument 레이블이 따로 지정되지 않았으므로 디폴트 값인 파라미터 네임 즉 person이 Argumetn label임과 동시에 파라미터로 쓰이는 것이다.
우선 정확히 말하자면, 파라미터는 함수 안에서 값을 받아 내부적으로 쓰일 수 있는 변수이고, Argument label은 함수를 선언할 때 삽입 시 항목 네임을 말하는 것 정도로 생각할 수 있다. 그래서 밑에 선언된 함수에 값을 넣는 것을 보면 그렇게 쓰이는 것을 짐작할 수 있다.
참고로 이 함수의 리턴 타입은 String인 것도 알 수 있다.
파라미터의 디폴트 값을 따로 지정해서 값을 넣지 않았을 경우 자동으로 값이 들어가게 된다.
'Undergraduate Records' 카테고리의 다른 글
[Baekjoon] 함수 : 4673 문제 (0) | 2019.07.19 |
---|---|
[Vmware 설치]Mac os mojave 설치 (0) | 2019.07.19 |
[Beakjoon] 1차원 배열 : 4344번 (0) | 2019.07.17 |
3회차 모각코 결과 (0) | 2019.07.17 |
3회차 모각코 목표 (0) | 2019.07.17 |