스위프트 - 제어 흐름
루프
조건문
제어 이전 문
For-In 루프
For-in 루프는 배열, 사전, 집합, 숫자 범위 또는 문자열의 문자에 있는 항목과 같은 시퀀스를 반복하는 데 사용됩니다.
예시 :
let names = ["Anna", "Alex", "Brian", "Jack"]
for name in names {
print("Hello, \(name)!")
}
in 뒤에 stride(from:to:by:) 또는 stride(from:through:by:) 를 사용하여 다른 간격으로 부분적으로 반복합니다.
For-In 루프는 해당 유형이 Sequence 프로토콜을 준수하는 한 자체 클래스 및 컬렉션 유형을 포함하여 모든 컬렉션을 반복하는 데 사용할 수 있습니다.
While 루프
첫 번째 반복이 시작되기 전에 반복 횟수를 알 수 없는 경우 while 루프를 사용합니다.
두 종류의 while 루프:
while은 시작 시 상태를 평가합니다
repeat-while은 끝에서 조건을 평가합니다
만약에
해당 조건이 참인 경우에만 일련의 명령문을 실행하고, 거짓이면 else 절에 있는 명령문이 있는 경우 실행합니다. else 절은 선택적입니다.
예시 :
temperatureInFahrenheit = 90
if temperatureInFahrenheit <= 32 {
print("It's very cold. Consider wearing a scarf.")
} else if temperatureInFahrenheit >= 86 {
print("It's really warm. Don't forget to wear sunscreen.")
} else {
print("It's not that cold. Wear a t-shirt.")
}
여러 else 절을 함께 연결할 수 있습니다.
스위치
switch 문은 여러 잠재적 상태에 응답하기 위해 if 문에 대한 대안을 제공합니다. 값을 가져와 가능한 여러 일치 패턴과 비교합니다. 그런 다음 적절한 코드 블록을 실행합니다.
모든 switch 문은 철저해야 합니다. 즉, 고려 중인 유형의 모든 가능한 값은 스위치 케이스 중 하나와 일치해야 합니다. 가능한 모든 값에 대한 사례를 제공하는 것이 적절하지 않은 경우 다음과 같이 기본 사례를 정의할 수 있습니다.
예시 :
let someCharacter: Character = "z"
switch someCharacter {
case "a":
print("The first letter of the alphabet")
case "z":
print("The last letter of the alphabet")
default:
print("Some other character")
}
복합 케이스는 쉼표로 구분된 케이스에 2개의 값을 결합하는 데 사용할 수 있습니다.
예시 :
case "a", "A":
print("The letter A")`
스위치 케이스의 값은 범위일 수 있습니다.
example :
`case 0:
naturalCount = "no"
case 1..<5:
naturalCount = "a few"
case 5..<12:
naturalCount = "several"
튜플은 동일한 switch 문에서 여러 값을 테스트하는 데 사용할 수 있습니다. 가능한 모든 값과 일치하도록 튜플 밑줄 문자(_)와 함께 와일드카드 패턴이라고도 합니다.
예시 :
switch somePoint {
case (0, 0):
print("\(somePoint) is at the origin")
case (_, 0):
print("\(somePoint) is on the x-axis")
case (0, _):
print("\(somePoint) is on the y-axis")
default:
print("\(somePoint) in plane")
}
값 바인딩 - 스위치 케이스는 케이스 본문에서 사용하기 위해 임시 상수 또는 변수와 일치하는 값의 이름을 지정할 수 있습니다.
예시 :
switch somePoint {
case (let x, 0):
print("on the x-axis with an x value of \(x)")
case (0, let y):
print("on the y-axis with a y value of \(y)")
case let (x, y):
print("somewhere else at (\(x), \(y))")
}
where 절을 스위치와 함께 사용하여 추가 조건을 확인할 수 있습니다.
예시 :
switch somePoint {
case let (x, y) where x == y:
print("(\(x), \(y)) is on the line x == y")
case let (x, y) where x == -y:
print("(\(x), \(y)) is on the line x == -y")
case let (x, y):
print("(\(x), \(y)) is just some arbitrary point")
}
복합 사례에는 값 바인딩도 포함될 수 있습니다. 복합 케이스의 모든 패턴은 동일한 값 바인딩 세트를 포함해야 합니다.
예시 :
switch somePoint {
case (let distance, 0), (0, let distance):
print("On an axis, \(distance) from the origin")
default:
print("Not on an axis")
}
제어 이전 문
계속하다
continue 문은 루프의 현재 반복을 중지하고 루프를 통해 다음 반복의 시작 부분에서 다시 시작합니다.
부서지다
break 문은 전체 제어 흐름 문의 실행을 즉시 종료합니다. 일찍 종료하기 위해 switch 또는 루프 문에서 사용할 수 있습니다.
실패로 끝나다
스위치 케이스 본체 내부에서 사용하여 조건이 일치하지 않고 다음 케이스로 점프할 수 있습니다.
예시 :
switch integerToDescribe {
case 2, 3, 5, 7, 11, 13, 17, 19:
description += " a prime number, and also"
fallthrough
default:
description += " an integer."
}
레이블이 있는 진술
중첩된 루프/중첩된 조건문을 중단하거나 계속하는 데 사용할 수 있습니다.
예시 :
outerLoop : for element1 in array1{
for element2 in array2{
if(element1 == element2){
continue outerLoop
}
}
uniqueElemetsInArray1.append(element1)
}
print(uniqueElemetsInArray1) //[21, 13, 5]
Reference
이 문제에 관하여(스위프트 - 제어 흐름), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/naveenragul/swift-control-flow-5c4g텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)