본문 바로가기
모바일앱/Swift

Loops (반복문)

by GeekCode 2021. 12. 8.
반응형

 

📌//For-in구문

//for 임시상수 in 시퀀스아이템 {

//    실행코드

//}

 

 

for i in 0...2 {

    print(i)

}

//0

//1

//2

print("--------------")

 

for i in 0...5 {

    if i.isMultiple(of: 2) { //isMultiple(of:X) i가 X의 배수일 경우 true

        print(i)

        continue

    }

    print("\(i) == 홀수")

}

//0

//1 == 홀수

//2

//3 == 홀수

//4

//5 == 홀수

print("--------------")

 

📌//String을 for Loop 하는 경우 한글자씩 꺼낸다.

let helloSwift: String = "Hello Swift"

for char in helloSwift {

    print(char)

}

//S

//w

//i

//f

//t

 

var result: Int = 1

 

print("--------------")

 

 

📌//시퀀스에 해당하는 값이 따로 필요없다면 와일드카드 식별자를 사용가능

for _ in 1...3 {

    result *= 10

}

print("10의 3제곱은 \(result)입니다.")

///10의 3제곱은 1000입니다.

 

print("--------------")

 

 

📌// 컬렉션 타입에 For Loops사용하기

// Dictionary

let friends: [String: Int] = ["Jay" : 35, "Joe": 29, "Jenny": 31]

 

for tuple in friends {

    print(tuple)

}

//(key: "Jay", value: 35)

//(key: "Joe", value: 29)

//(key: "Jenny", value: 31)

 

print("--------------")

 

let address: [String: String] = ["도": "충정북도", "시군구": "청주시 청원구", "동읍면": "율량동"]

 

for (키, 값) in address { //

    print("\(키) : \(값)")

}

//for (X, Y) in address {

//    print("\(X) : \(Y)")

//}

//도 : 충정북도

//동읍면 : 율량동

//시군구 : 청주시 청원구

print("--------------")

 

📌//Set

let localNumber: Set<String> = ["02", "031", "032", "033", "041", "042", "043", "051", "052", "053", "054", "055"]

 

for number in localNumber {

    print(number)

}

/*

 054

 053

 02

 042

...

 */

 

📌// while 구문 -> 특정조건을 Bool 타입으로 지정할 것

 

var names: [String]=["Joker", "Jenny", "Nova", "yagom"]

 

while names.isEmpty == false {

    print("Good bye \(names.removeLast())")

}

// 뒤에서 부터 요소를 삭제하며 반환 (removeFirst는 반대)

/*

 Good bye yagom

 Good bye Nova

 Good bye Jenny

 Good bye Joker

 */

 

print("-----")

 

📌// Repeat-while

var names2: [String]=["Joker", "Jenny", "Nova", "yagom"]

 

repeat {

    print("Good bye \(names2.removeFirst())")

} while names2.isEmpty == false

 

/*

 Good bye Joker

 Good bye Jenny

 Good bye Nova

 Good bye yagom

 */

 

📌//While과 repeat-while의 같은 결과값

print("--- while")

 

var i = 0

while i < 10 {

    print(i)

    i += 1

}

 

print("--- Repeat")

i = 0

repeat {

    print(i)

    i += 1

} while i < 10

 

더보기

/*

 --- while

 0

 1

 2

 3

 4

 5

 6

 7

 8

 9

 --- Repeat

 0

 1

 2

 3

 4

 5

 6

 7

 8

 9

 

 */

 

📌//While과 repeat-while의 차이점

코드의 실행순서가 달라서 
while의 경우, 조건에 맞지않으면 실행되지않지만,

repeat의 경우, 먼저 실행을 하고 조건이 등장하기 때문에 조건에 맞지않더라도 한번은 실행하게 된다.

 

print("--- while")

var i = 10

while i < 10 {

    print(i)

    i += 1

    

}

print("--- Repeat")

i = 10

repeat {

    print(i)

    i += 1

    

} while i < 10

/*

 --- while

 --- Repeat

 10

 */

import UIKit
//For-in구문
//for 임시상수 in 시퀀스아이템 {
//    실행코드
//}

for i in 0...2 {
    print(i)
}
//0
//1
//2
print("--------------")

for i in 0...5 {
    if i.isMultiple(of: 2) { //isMultiple(of:X) i가 X의 배수일 경우 true
        print(i)
        continue
    }
    print("\(i) == 홀수")
}
//0
//1 == 홀수
//2
//3 == 홀수
//4
//5 == 홀수
print("--------------")

//String을 for Loop 하는 경우 한글자씩 꺼낸다.
let helloSwift: String = "Hello Swift"
for char in helloSwift {
    print(char)
}
//S
//w
//i
//f
//t

var result: Int = 1

print("--------------")
//시퀀스에 해당하는 값이 따로 필요없다면 와일드카드 식별자를 사용가능
for _ in 1...3 {
    result *= 10
}
print("10의 3제곱은 \(result)입니다.")
///10의 3제곱은 1000입니다.

print("--------------")
// 컬렉션 타입에 For Loops사용하기
// Dictionary
let friends: [String: Int] = ["Jay" : 35, "Joe": 29, "Jenny": 31]

for tuple in friends {
    print(tuple)
}
//(key: "Jay", value: 35)
//(key: "Joe", value: 29)
//(key: "Jenny", value: 31)

print("--------------")

let address: [String: String] = ["도": "충정북도", "시군구": "청주시 청원구", "동읍면": "율량동"]

for (키, 값) in address { //
    print("\(키) : \(값)")
}
//for (X, Y) in address {
//    print("\(X) : \(Y)")
//}
//도 : 충정북도
//동읍면 : 율량동
//시군구 : 청주시 청원구
print("--------------")

//Set
let localNumber: Set<String> = ["02", "031", "032", "033", "041", "042", "043", "051", "052", "053", "054", "055"]

for number in localNumber {
    print(number)
}
/*
 054
 053
 02
 042
...
 */

// while 구문 -> 특정조건을 Bool 타입으로 지정할 것

var names: [String]=["Joker", "Jenny", "Nova", "yagom"]

while names.isEmpty == false {
    print("Good bye \(names.removeLast())")
}
// 뒤에서 부터 요소를 삭제하며 반환 (removeFirst는 반대)
/*
 Good bye yagom
 Good bye Nova
 Good bye Jenny
 Good bye Joker
 */

print("-----")

// Repeat-while
var names2: [String]=["Joker", "Jenny", "Nova", "yagom"]

repeat {
    print("Good bye \(names2.removeFirst())")
} while names2.isEmpty == false

/*
 Good bye Joker
 Good bye Jenny
 Good bye Nova
 Good bye yagom
 */

//While과 repeat-while의 같은 결과값
print("--- while")

var i = 0
while i < 10 {
    print(i)
    i += 1
}

print("--- Repeat")
i = 0
repeat {
    print(i)
    i += 1
} while i < 10

/*
 --- while
 0
 1
 2
 3
 4
 5
 6
 7
 8
 9
 --- Repeat
 0
 1
 2
 3
 4
 5
 6
 7
 8
 9

 */

//While과 repeat-while의 차이점
print("--- while")
var i = 10
while i < 10 {
    print(i)
    i += 1
    
}
print("--- Repeat")
i = 10
repeat {
    print(i)
    i += 1
    
} while i < 10
/*
 --- while
 --- Repeat
 10
 */
반응형