Swift문법 - (6)반복문

Youth·2022년 9월 17일
0

swift문법공부

목록 보기
6/27
post-thumbnail

For 반복문

for문의 기본형식

for item in "범위" {
    "code"
}
//범위 자리에는 범위를 나타내는 연산자가 와야한다

for문의 기본적인 사용법

for index in 1...5 {
    print("For문 출력해보기: \(index)")
}
//1이상 5이하(1,2,3,4,5)를 let index = 1 그리고 let index = 2 ...

for index in 1...4 {
    let result = index * 5
    print("\(index)에 5를 곱하면 \(result)")
}

주의 : 1이상 10이하를 10이하로 1이상으로 바꾸는방법
**왜 사용하나요? : 범위 연산자는 오름차순으로 선언해야함**

(1...10).reversed()

와일드 카드 패턴

  • _ (언더바)는 스위프트에서 생략을 의미한다
for _ in 0...10 {
    print("hello")
}
//원래 _ 대신 i가 있었는데 i자체가 사용되지 않기 때문에 생략해도 11번반복은된다

for문의 사용 예제

// **컬렉션**에서 각 아이템을 차례 차례 한번씩 뽑아서 중괄호 안에서 사용

let list = ["Swift", "Programming", "Language"]

for str in list {
    print(str)
}

// **문자열**에서 각 문자를 차례 차례 한개씩 뽑아서 중괄호 안에서 사용

for chr in "Hello" {
    print(chr, terminator: " ")
    //다음줄로 넘어가지 말고, 한칸을 띄워라
    //저게 없다면 기본값은 \n(엔터) -> 엔터대신 스페이스를 써라
}

// **Stride** : 규칙적인 범위를 만들어주는 함수

let range = stride(from: 1, to: 15, by: 2)
// 1이상 15미만(to)인데 2씩 추가
// StrideTo<Int>

for i in range {
    print(i)
}
// 1, 3, 5, 7, 9, 11, 13

let range1 = stride(from: 1, through: 15, by: 2)
// 1이상 15이하(through)인데 2씩 추가
// StrideThrough<Int>

for i in range1 {
    print(i)
}
// 1, 3, 5, 7, 9, 11, 13, 15

let range2 = stride(from: 10, through: 2, by: -2)
// 10이하 2이상(through)인데 2씩 빼기      
// StrideThrough<Int>

for i in range2 {
    print(i)
}
// 10, 8, 6, 4, 2

코딩에서의 대 원칙

중괄호 내에서 밖에 변수는 접근가능

중괄호 밖에서 안에 변수는 접근불가능

While 반복문

while문의 기본 형식

while "참과 거짓을 판단 할 수 있는 문장" {
    "code"
    ⭐️조건에 변화를 주는 문장(보통 조건은 밖에다가 선언함)
    -> 밖에있는 변수는 내부에서 접근이 가능하기 때문
}

Example)
var sum = 0
var num = 1

while num <= 50 { // 조건이 만족하는 동안 계속 반복
    sum += num
    num += 1      // **(⭐️필수)조건을 변화시키는 문장이 존재해야한다**
}

repeat - while문

var i = 1

repeat {
    print("\(3) * \(i) = \(3 * i)")    // 조건에 상관 없이 실행
    i += 1                             // 조건을 변화시키는 문장
} while i <= 9                         // 조건의 참거짓여부를 판단

제어전송문

continue의 사용

for num in 1...20 {
    if num % 2 == 0 {
    // num이 2의 배수이면 continue실행
    // **continue의 뜻은 순간 다음 반복실행**
    // 즉 아래있는 print(num)을 실행하지 않는다
        continue
    }
    print(num)
}
//결과 : 1, 3, 5, 7, 9, 11, 13, 15, 17, 19

break의 사용

for num in 1...20 {
    if num % 2 == 0 {
        break
    // num이 2의 배수이면 break실행
    // **break의 뜻은 순간 가장 가까운 반복을 끝냄** -> 반복문 아래문장을 실행 
    }
    print(num)
}

중첩사용시의 적용 범위

for i in 0...3 {
    print("OUTER \(i)")
    for j in 0...3 {
        if i > 1 {
            print("  j :", j)
            continue
        }
        print("  INNER \(j)")
    }
    //만약에 i가 2고 j가 0, 1, 2, 3의 반복을 했다면
    //3까지의 반복이 끝났기 때문에 print("  INNER \(j)")를 실행하지 않음
}

for i in 0...3 {
    print("OUTER \(i)")
    for j in 0...3 {
        if i > 1 {
            print("  j :", j)
            break
        }
        print("  INNER \(j)")
    }
    //특정조건을 만족해 break를 만나면 for j in 0...3의 반복문이 끝남
    //print("  INNER \(j)")를 실행하지 않음
}
profile
AppleDeveloperAcademy@POSTECH 1기 수료, SOPT 32기 iOS파트 수료

1개의 댓글

comment-user-thumbnail
2024년 3월 16일

😉

답글 달기