iOS 공부하는 감자

Day5) 연산자, 조건문, 반복문 + 알고리즘 본문

22 베이직 챌린지

Day5) 연산자, 조건문, 반복문 + 알고리즘

DongTaTo 2022. 1. 7. 19:53
반응형

조건문

조건문의 종류

  • if-else
  • switch

 

if-else

  • 조건절의 결과는 반드시 Bool 타입으로 참, 거짓을 나타내야 한다.
  • 조건절을 순서대로 비교하고, 조건절이 true가 나오는 곳의 코드블럭을 실행한다.
  • else를 작성하지 않아도 정상 작동한다.

 

switch

  • 하나의 case를 실행시키면 조건문이 종료된다. ( fallthrough 키워드를 통해 바로 다음의 case를 연속으로 실행시킬 수 있다. )
  • 비교할 값이 명확하게 한정적인 경우를 제외하면(ex-열거형) default를 작성해야 한다.
  • 각 case에 범위 연산자 사용이 가능하다.
  • case에 조건을 부여하고 싶다면 where절을 통해 부여할 수 있다.
  • let someInt: Int = 101
    
    switch someInt {
    case 100:
        print("is 100")
    case let sm where sm > 100:
        print("over 100")
        fallthrough
    default:
        print("under 100")
    }
    
    // fallthrough 키워드로 조건에 관계없이 바로 아래의 case 추가 실행
    // over 100
    // under 100

 

 

 


반복문

반복문의 종류

  1. for - in
  2. while

 

for - in

  • 반복 횟수가 명확할 때 사용하기 좋다.
  • Collection Type을 순회할 때 사용하기 좋다.
  • Dictionary를 순회하면 내부에는 (key, value) 상태의 튜플로 들어온다.
  •  
  •  
  • let someArray: [Int] = [1, 2, 3, 4, 5] for number in someArray { print(number) } // 1 // 2 // 3 // 4 // 5 let someDictionary: [Int: String] = [1: "one", 2: "two", 3: "three"] for (key, value) in someDictionary { print("\(key) : \(value)") } // 1 : one // 2 : two // 3 : three

while

  • Bool Type의 조건이 성립하는 한 블록 내부의 코드를 반복 실행한다.
  • repeat-while을 사용하여 코드블럭을 1회 실행한 후 조건을 검사할 수 있다.
  • 조건에 변화를 주지 않으면 무한 루프에 빠질 수 있으므로 주의해야 한다.
  • var someInt: Int = 0
    
    while someInt <= 5 {
        print(someInt)
        // someInt의 값을 수정하지 않으면 무한루프
        someInt += 1
    }
    // 0
    // 1
    // 2
    // 3
    // 4
    // 5

 

forEach

  • for-in과 마찬가지로 Collection Type을 순회하기 좋다.
  • 순회하면서 사용할 작업을 클로저로 작성하여 매개변수로 넘겨준다.
  • 반복문에서 사용하는 continue, break는 사용이 불가능하다.
  • let someArray: [Int] = [1, 2, 3, 4, 5]
    
    someArray.forEach({
        print($0)
    })
    // 1
    // 2
    // 3
    // 4
    // 5

구문 이름표

  • 중첩된 반복문을 사용할 때 반복문을 제어하는 키워드 (break, continue..)를 명확하게 특정 반복문에 적용시키기 위해 사용한다.
  • 반복문 앞에 이름과 콜론을 붙여서 구문의 이름을 정해준 후 제어 키워드와 구문 이름을 함께 사용하여 반복문을 제어한다.
  • gugudan: for n in 2...9 {
        for m in 1...9 {
            print("\(n) * \(m) = \(n*m)")
            // 구구단의 결과가 20이 나오면 구구단을 종료
            if n*m == 20 {
                break gugudan
            }
        }
    }

 

 


알고리즘

 

 

반응형