๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
ํ๋ฆ์ ์ด(2) - ๋ฐ๋ณต๋ฌธ
- for-in ๊ตฌ๋ฌธ
- while ๊ตฌ๋ฌธ
- repeat-while ๊ตฌ๋ฌธ
- ๊ตฌ๋ฌธ ์ด๋ฆํ
1. for-in ๊ตฌ๋ฌธ
- ํน์ ๊ตฌ๋ฌธ์ ํน์ ํ์๋งํผ ๋ฐ๋ณตํด์ ์คํํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ค. ์ฆ, ๋ฐ๋ณตํ์๊ฐ ์ ํด์ ธ ์์ ๋ ์ฌ์ฉํ๋ค.
- continue, break ๋ฑ์ ์ ์ด ํค์๋๋ฅผ ์ฌ์ฉํ๋ค.
- for-in ๊ตฌ๋ฌธ์ ์ค์ํํธ์ ๊ธฐ๋ณธ Collection Type์ธ ๋ฐฐ์ด, ๋์ ๋๋ฆฌ, ์ธํธ์์๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. ์ฌ๊ธฐ์ ๋์ ๋๋ฆฌ๋ ํค์ ๊ฐ์ ์์ด๊ธฐ ๋๋ฌธ์ ์ํ์ค ์์ดํ ์์ ์์ ์์๋ก ์์๊ฐ ๋์ด๊ฐ ๋ ํํ๋ก ์ ๋ฌ๋๋ค.
- swift ๋ฌธ๋ฒ์ ๋ ๊ณต๋ถํ๋ค๋ณด๋ฉด for-in ๊ตฌ๋ฌธ๋ณด๋ค map, filter, flatMap ๋ฑ์ ๋ ๋ง์ด ์ฌ์ฉํ ๊ฒ์ด๋ค.
- ์ํ์ค ์์ดํ ์ ๋ด์ ์์ ์์๊ฐ ํ์ ์๋ค๋ฉด ์์ผ๋ ์นด๋ ์๋ณ์(_)๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
- ์ค์ฒฉํ์ฌ ๋ฐ๋ณต๋ฌธ์ ์์ฑํด๋ ๋๋ค.
๊ธฐ๋ณธ for-in ๊ตฌ๋ฌธ ์ฌ์ฉ ์์
for _ in 1...3 {
print("์ถ๋ ฅํ๊ธฐ")
}
//์ถ๋ ฅํ๊ธฐ
//์ถ๋ ฅํ๊ธฐ
//์ถ๋ ฅํ๊ธฐ
for i in 1..<5 {
if(i%2 == 0){
print("\(i)๋ ์ง์์
๋๋ค. ")
continue //๋ ์ด์ ์งํํ์ง ์๊ณ ๋ค์ ์ํ์ค๋ก ์ด๋
}
print("\(i)๋ ํ์์
๋๋ค.")
}
//1๋ ํ์์
๋๋ค.
//2๋ ์ง์์
๋๋ค.
//3๋ ํ์์
๋๋ค.
//4๋ ์ง์์
๋๋ค.
for i in 0..<2 {
if i == 0 {
print("0์ด๋ฉด break")
break //๋ฐ๋ณต๋ฌธ์ ์ข
๋ฃํ๋ค.
}
print("i๋ \(i)")
}
//0์ด๋ฉด break
๋ฌธ์์ด์ด ์ํ์ค ์์ดํ ์ธ ๊ฒฝ์ฐ
//๋ฌธ์์ด์ด ์ํ์ค ์์ดํ
์ธ ๊ฒฝ์ฐ for-in ๊ตฌ๋ฌธ ์์
let introduce: String = "Hi! I'm yh!"
for char in introduce {
print(char,terminator: ".")
}
//print ๋ฉ์๋์ terminator ๋งค๊ฐ๋ณ์๋ ์ถ๋ ฅ ํ ๋ง์ง๋ง์ ์ถ๋ ฅ๋๋ ๋ฌธ์์ด์ด๋ค. ๊ธฐ๋ณธ์ ์ค๋ฐ๊ฟ ๋ฌธ์ "\n"
์ปฌ๋ ์ ํ์ ์ด ์ํ์ค ์์ดํ ์ธ ๊ฒฝ์ฐ
https://88yhtserof.tistory.com/22?category=966954
//๋ฐฐ์ด
let numberArray: [Int] = [1,2,3,4]
for num in numberArray {
print(num)
}
//1
//2
//3
//4
//๋์
๋๋ฆฌ - ํค์ ๊ฐ ์์ ์์ ์๋ ์ปฌ๋ ์
ํ์
let contactAddress: [String: Int] = ["renee": 1124, "ari": 478]
for tuple in contactAddress {
print("\(tuple.key)์ ์ฐ๋ฝ์ฒ๋ \(tuple.value)์ด๋ค.")
}
//์ธํธ - ์์ ์์ด ํ๋์ ๋ฌถ์์ผ๋ก ์ ์ฅํ๋ ํํ์ ์ปฌ๋ ์
ํ์
let myInfo: Set<String> = ["yh","123-456", "red", "apple"]
for info in myInfo {
print(info, terminator: " ")
}
2. While ๊ตฌ๋ฌธ
- ์ฃผ์ด์ง ์กฐ๊ฑด์์ด false๊ฐ ๋ ๋๊น์ง, ์ฆ ๋ฐ๋ณต ํ์๊ฐ ์ ํด์ ธ ์์ง ์์ ๋, ์์ง ๋ชปํ ๋ while ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ค.
- continue, break ๋ฑ ์ ์ด ํค์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- ์ค์ฒฉํ์ฌ ๋ฐ๋ณต๋ฌธ์ ์์ฑํด๋ ๋๋ค.
var num: Int = 5
while num != 0 {
if(num>0){
num-=1
print("ํ์ฌ num์ \(num)")
continue
}
num+=1
print("ํ์ฌ num์ \(num)")
}
ํ์ฌ num์ 3
ํ์ฌ num์ 2
ํ์ฌ num์ 1
ํ์ฌ num์ 0
3. repeat - while ๊ตฌ๋ฌธ
๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ do-while๊ณผ ํก์ฌํ๋ค. ๋จผ์ repeat ๋ธ๋ก์ ์คํํ ํ while ๊ตฌ๋ฌธ์ ์กฐ๊ฑด์ ๊ฒ์ฌํ๋ฉด ๋ค์ ๋ฐ๋ณต์ ์งํํ ์ง ๊ฒฐ์ ํ๋ค. ๋ง์ฝ ํ ๋ฒ๋ ์กฐ๊ฑด์์ ๋ง์กฑํ์ง ๋ชปํ๋ค๋ฉด, repeat ๋ธ๋ก์ด ํ ๋ฒ๋ง ์คํ๋์์ ๊ฒ์ด๋ค.
4. ๊ตฌ๋ฌธ ์ด๋ฆํ
๋ฐ๋ณต๋ฌธ ์์ ์ด๋ฆ๊ณผ ํจ๊ป ์ฝ๋ก ์ ๋ถ์ฌ ๊ตฌ๋ฌธ์ ์ด๋ฆ์ ์ง์ ํด์ฃผ๋ ๋ฐฉ๋ฒ์ ๊ตฌ๋ฌธ ์ด๋ฆํ๋ผ๊ณ ํ๋ค. ์ค์ฒฉํ์ฌ ๋ฐ๋ณต๋ฌธ์ ์์ฑํ ๋ ์ ์ด ํค์๋์ ์ฌ์ฉ ๋ฒ์๊ฐ ์ ๋งคํ ์๋ ์๋ค. ์ด๋ด ๋ ๊ตฌ๋ฌธ ์ด๋ฆํ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํํ๊ฒ ์ํ๋ ๋ฐ๋ณต๋ฌธ์ ์ ์ดํ ์ ์๋ค. ์ด๋ฆ์ด ์ง์ ๋ ๊ตฌ๋ฌธ์ ์ ์ดํ๊ณ ์ ํ ๋๋ ์ ์ด ํค์๋์ ๊ตฌ๋ฌธ ์ด๋ฆ์ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋๋ค.
let employees: [String:Int] = ["๊นํ๋": 1, "๊ฐ๋": 2, "์ก์
": 3, "์ง๋ท": 4]
let retirees = "๊ฐ๋"
employeesLoop: for employeeInfo in employees {
var payGrade = 0
var salary = 0
print("\(employeeInfo.key)", terminator: " ")
salaryCalLoop: while employeeInfo.value >= payGrade {
salary+=100
payGrade+=1
if employeeInfo.key == retirees {
print("ํด์ง์์
๋๋ค.")
continue employeesLoop
}
}
print("์ ์๊ธ์ \(salary)์ด๋ค.")
}
/*
์ก์
์ ์๊ธ์ 400์ด๋ค.
๊ฐ๋ ํด์ง์์
๋๋ค.
๊นํ๋ ์ ์๊ธ์ 200์ด๋ค.
์ง๋ท ์ ์๊ธ์ 500์ด๋ค.
*/
๊ณต๋ถ ์๋ฃ
์ผ๊ณฐ - ์ค์ํํธ ํ๋ก๊ทธ๋๋ฐ 5ํ (SWIFT5)
Do It! ์ค์ํํธ๋ก ์์ดํฐ ์ฑ ๋ง๋ค๊ธฐ ๊ฐ์ 5ํ
'Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ Swift ] ์ต์ ๋ Optionals (0) | 2021.09.05 |
---|---|
[ Swift ] ํจ์ (0) | 2021.09.02 |
[ Swift ] ํ๋ฆ ์ ์ด(1) - ์กฐ๊ฑด๋ฌธ ( if ๊ตฌ๋ฌธ, switch ๊ตฌ๋ฌธ ) (0) | 2021.08.18 |
[ SWIFT ] ์ฐ์ฐ์ - ์ฐ์ ์ฐ์ฐ์, ๋น๊ต ์ฐ์ฐ์, ์ผํญ ์กฐ๊ฑด ์ฐ์ฐ์, ๋ฒ์ ์ฐ์ฐ์, nil ๋ณํฉ ์ฐ์ฐ์, ๋ถํธ ๋ณ๊ฒฝ ์ฐ์ฐ์ (0) | 2021.08.13 |
[ SWIFT ] ๋ฐ์ดํฐ ํ์ ๊ณ ๊ธ(3) - ์ด๊ฑฐํ (0) | 2021.07.30 |