For 루프
Swift에서 루프를 작성하는 다양한 방법이 있지만 기본 메커니즘은 동일합니다. 조건이 거짓으로 평가 될 때까지 일부 코드를 반복적으로 실행합니다. Swift에서 가장 일반적인 루프는 for
루프입니다. 배열과 범위를 반복하고 루프가 돌아갈 때마다 하나의 항목을 꺼내 상수에 할당합니다.예를 들어 아래코드는 숫자 범위입니다.
let count = 1...10
for
루프를 사용하여 다음과 같이 각 항목을 인쇄 할 수 있습니다 .
for number in count {
print("숫자는 \(number) 입니다")
}
배열로도 똑같이 할 수 있습니다 :
let albums = ["다이너마이트", "디오니소스", "불타오르네"]
for album in albums {
print("\(album)은 BTS의 노래입니다.")
}
//다이너마이트은 BTS의 노래입니다.
//디오니소스은 BTS의 노래입니다.
//불타오르네은 BTS의 노래입니다.
for
루프가 제공 하는 상수를 사용하지 않는 경우 Swift가 불필요한 값을 생성하지 않도록 대신 밑줄( _ )을 사용해야합니다.
for _ in 1...5 {
print("play")
}
예시
for i in 4...6 {
print("스타워즈 에피소드 : \(i) 번째")
}
//스타워즈 에피소드 : 4 번째
//스타워즈 에피소드 : 5 번째
//스타워즈 에피소드 : 6 번째
let albums = ["다이너마이트", "피땀눈물"]
for album in albums {
print("\(album)은 정말 좋은 노래입니다!")
}
//다이너마이트은 정말 좋은 노래입니다!
//피땀눈물은 정말 좋은 노래입니다!
for i in 1...8 {
if i < 3 {
print("\(i)(은)는 낮은 수치입니다.")
}
}
//1(은)는 낮은 수치입니다.
//2(은)는 낮은 수치입니다.
for person in ["Taylor", "Justin", "Adele"] {
print("Hello, \(person)!")
}
for i in 1...15 {
if i % 3 == 0 { //3,6,9,12,15
if i % 5 == 0 { //15
print("\(i) is a multiple of both 3 and 5.")
}
}
}
//15 is a multiple of both 3 and 5.
조건문을 넣어 작성
조건문을 넣어 코드를 작성할 수 있는데, 아래는 만약 umber % 2
가 0
이면 number
을 프린트 합니다.
var numbers
배열에서 2
를 조건문에 넣게된다면, 2 % 2 == 0
으로 일치하게 됩니다.
그래서 2
가 프린트 되는것이죠. 4
와 6
도 마찬가지입니다.
그외에 1
, 3
, 5
는 조건에 맞지 않기때문에 프린트 되지 않습니다.
var numbers = [1, 2, 3, 4, 5, 6]
for number in numbers {
if number % 2 == 0 {
print(number)
}
}
//2
//4
//6
잘못된 예시
var speeds = (65, 58, 72)
for speed in speeds {
print("You were driving at \(speed)km/h.")
}
//배열의 () 가 틀렸습니다. 배열은 [ ] 을 사용해야 합니다.
배열 루프
Swift는 이미 배열에 어떤 종류의 데이터가 있는지 알고 있기 때문에 배열의 모든 요소를 통과하여 이름을 지정한 상수에 할당 한 다음 코드 블록을 실행합니다. 예를 들어 다음과 같은 노래 목록을 인쇄 할 수 있습니다.
var songs = ["Shake it Off", "You Belong with Me", "Look What You Made Me Do"]
for song in songs {
print("제가 가장 좋아하는 노래는 '\(song)' 입니다.")
}
for i in
루프를 사용하여 배열을 반복 할 수도 있습니다. 해당 상수를 사용하여 배열로 인덱싱 할 수 있기 때문입니다. 다음과 같이 두 개의 배열로 인덱싱하는 데 사용할 수도 있습니다.
var people = ["players", "haters", "heart-breakers", "fakers"]
var actions = ["play", "hate", "break", "fake"]
for i in 0 ... 3 {
print("\(people[i]) gonna \(actions[i])")
}
또, 0
에서 3
까지 세는 대신 0
부터 배열에 있는 최대 개수 까지 세고배열의 항목 수를제외할 수 있습니다.
var people = ["players", "haters", "heart-breakers", "fakers"]
var actions = ["play", "hate", "break", "fake"]
for i in 0 ..< people.count {
print("\(people[i]) gonna \(actions[i])")
}
밑줄( _ )을 사용하는 이유는??
배열의 항목을 반복하려면 다음과 같은 코드를 작성 할 수 있습니다.
let names = ["서근", "포뇨", "하울", "소피아", "소스케"]
for name in names {
print("\(name)는 과자를 가지고 있습니다!")
}
//서근는 과자를 가지고 있습니다!
//포뇨는 과자를 가지고 있습니다!
//하울는 과자를 가지고 있습니다!
//소피아는 과자를 가지고 있습니다!
//소스케는 과자를 가지고 있습니다!
루프가 돌아갈 때마다 Swift는 이름 배열에서 한 항목을 가져와 name
상수에 입력한 다음 루프 본문을 실행합니다. 이것이 print()
방법입니다. 하지만 때로는 현재 읽고있는 값(name
)이 실제로 필요하지 않은 경우도 있습니다. 이곳에 밑줄( _
)을 추가해줘야 합니다. 그렇다면 Swift는 실제로 변수가 필요하지 않음을 인식하고 임시 상수를 만들지 않습니다.
Swift는 사용자가 루프 내에서 name
을 사용하고 있는지 여부를 확인할 수 있기 때문에 밑줄 없이도 동일한 작업을 수행할 수 있습니다. 그러나 밑줄을 사용하는것은 마치 우리의 뇌와 비슷합니다. 코드를 보고 루프 변수가 사용되지 않음을 즉시 확인할 수 있습니다. 루프 본문 안에 코드 행이 몇 개든 상관없이요!
let count = 1...3
for _ in count {
print("여기는 마치 내 집처럼 편해요")
}
for _ in 0...3 {
print("루프문 테스트")
} //총 4번 반복한다
//루프문 테스트
//루프문 테스트
//루프문 테스트
//루프문 테스트
루프 TEST : 문제를 풀려면 이곳을 클릭해주세요.
읽어주셔서 감사합니다🤟
'SWIFT > Grammar' 카테고리의 다른 글
Swift : 기초문법 [Repeat 루프] (0) | 2021.02.21 |
---|---|
Swift : 기초문법 [While 루프] (0) | 2021.02.21 |
Swift : 기초문법 [스위치 - Switch(break/fallthrough)] (2) | 2021.02.20 |
Swift : 기초문법 [삼항 연산자 - ternary operator] (0) | 2021.02.20 |
Swift : 기초문법 [논리 연산자 - Logical Operators] (0) | 2021.02.20 |