-
Swift4: 제어 전송 명령문( Control transfer statement ) : continue, break, return스위프트: Swift/스위프트: 언어자체: 문법 2018. 9. 4. 14:43
안녕하세요 ! 씩이 입니다!
저는 Swift 와 iOS 를 공부하고 연구하는 학생입니다.
같은 분야를 공부하는 분들에게 조금이라도 도움이 주고 싶어서 공부하는 것들을 공유합니다.
제 3자가 있다고 가정하고 설명하기 때문에 존대를 하지 않는점 이해 부탁드립니다.
공유가 미래 라고 생각합니다.
한국의 모든 개발자분들 존경합니다!
- Swift version : Swift 4.2 Swift 언어
- 참고한 것들
- 씩이 Github
- 자료구조 소스파일 있습니다.
- iOS 관련 자료들, 정보들 정리해 두었습니다.
- 스위프트로 구현한 자료구조 : DataStructures in Swift4
- Swift4 : 연결리스트 (1 / 3) : #LinkedList : #DataStructrue : #자료구조
- Swift4 : 연결리스트 (2 / 3) : #LinkedList : #값 추가하기, push, append : #값 삽입하기,insert
- Swift4 : 연결리스트 (3 / 3) : #LinkedList : #값 제거하기, pop, removeLast, remove(at: )
- [스위프트 : 자료구조] 스택: Stack: 자료구조: DataStructure: 쌓기
- [스위프트 : 자료구조] 스택 : Stack : 프로토콜 지향 스택 구현하기
- [스위프트 : 자료구조] 큐 (1 / 4): Queue: #자료구조: #배열로 구현한 큐: #배열의원리
- [스위프트 : 자료구조] 큐 (2 / 4): Queue: #자료구조: #연결리스트: #더블연결리스트: #DoublyLinkedList
- [스위프트 : 자료구조] 큐 (3 / 4): Queue: #자료구조: #Stack으로 구현: #더블스택: #DoubleStack: #제일좋음
- [스위프트 : 자료구조] 큐 (4 / 4): Queue: #자료구조: #RingBuffer: #링버퍼로 구현한 큐: #고정된배열: #마지막!!
- [스위프트 : 자료구조] 큐: Queue: 프로토콜 지향 큐 구현하기
- 스위프트: 트리: Tree: #자료구조: #깊이우선탐색: #레벨정렬탐색: #검색알고리즘: Swift4
- 스위프트: 이진 탐색 트리(1 / 2): #BinarySearchTree: #자료구조: #배열과 비교: #트리: #탐색: #삽입: #삭제
- 스위프트: 이진 탐색 트리(2 / 2): #BinarySearchTree: #자료구조: #배열과 비교: #트리: #탐색: #삽입: #삭제
- [스위프트 : 자료구조] AVL Tree: 자가 균형 트리: #balance: #트리의 높이: #rotation메소드: #성능오짐
- [스위프트:자료구조] 트라이: Trie: 문자열 찾기: 단어 찾기
- [스위프트:자료구조] Heap: 힙 자료구조 (1 / 2) : Heap 이란?
- [스위프트:자료구조] Heap: 힙 자료구조 (2 / 2) : Heap 구현하기
- 스위프트로 구현한 알고리즘 : Algorithms in Swfit4
- [스위프트 : 알고리즘] 재귀호출 (1 / 6) : recursive: 재귀호출 : 재귀함수: 반복문: 팩토리얼: 거듭제곱: 피보나치: 하노이의 탑: 최대공약수
- [스위프트 : 알고리즘] 재귀 : 팩토리얼 (2 / 6) : factorial: 재귀호출 : 재귀함수: 반복문: 팩토리얼: 거듭제곱: 피보나치: 하노이의 탑: 최대공약수
- [스위프트 : 알고리즘] 재귀 : 거듭제곱 (3 / 6) : Power: 재귀호출 : 재귀함수: 반복문: 팩토리얼: 거듭제곱: 피보나치: 하노이의 탑: 최대공약수
- [스위프트 : 알고리즘] 재귀 : 피보나치 수열(4 / 6) : Fibonacci: 재귀호출 : 재귀함수: 반복문: 팩토리얼: 거듭제곱: 피보나치: 하노이의 탑: 최대공약수
- [스위프트 : 알고리즘] 재귀 : 하노이의 탑 (5 / 6) : Hanoi: 재귀호출: 재귀함수: 반복문: 팩토리얼: 거듭제곱: 피보나치: 하노이의 탑: 최대공약수
- [스위프트 : 알고리즘] 재귀 : 최대공약수 (6 / 6) : GCD: 재귀호출: 재귀함수: 반복문: 팩토리얼: 거듭제곱: 피보나치: 하노이의 탑: 최대공약수
- [스위프트:알고리즘] 이진 탐색[1 / 3]: Binary Search: 이진 탐색이 뭐야?
- [스위프트:알고리즘] 이진 탐색[2 / 3]: Binary Search: 이진 탐색: 반복문, 재귀호출로 구현하기
- [스위프트:알고리즘] 이진 탐색[3 / 3]: Binary Search: 이진 탐색: 프로토콜 지향으로 구현하기
- Swift 주제별 분류
- Swift4 : 제어 전달 명령문( Control Transfer Statement ) : #continue, #break, #return 키워드
- Swift4 : 클래스와 구조체 : #값을 대하는 방식 : #참조타입, 값 타입 : #===
- Swift4 : 프로퍼티 : #Property : #get, set : #willSet, didSet
- Swift4 : 메소드 : #Method : #영향력 범위 : #self : #mutating : #값타입 수정
- Swift4 : 프로토콜 1 : #Protocol : #설계 : #요구사항 : #델리게이트 패턴 전처리 (1 / 2)
- Swift4 : 프로토콜 2 : #델리게이트 패턴 : #델리게이션 (2 / 2)
- Swift4 : 제네릭 : #Generics : #왜필요해? : #where키워드 : #제약사항걸기
- Swift4 : 자동 참조 카운팅 : #Automatic Referece Counting : #ARC :#강한참조 : #Strong Reference Cycle : #메모리 누수
- Swift4 : 클로저: Closure: #표현방식: #왜필요해?: #효율적: #간결성: #생략
- [스위프트 : 기초] 서브스크립트 : Subscript : 지름길
Control Transfer Statements : 제어 전달 명령문
Control transfer statements change the order in which your code is executed, by transferring control from one piece of code to another. Swift has five control transfer statements:
제어 전송 명령문은 코드의 한 부분을 다른 부분으로 제어를 전달하는 원리로 코드가 실행되는 순서를 변경합니다. 아래 3가지 키워드에 대해 알아볼 예정입니다.
continue
break
return
Continue
The
continue
statement tells a loop to stop what it is doing and start again at the beginning of the next iteration through the loop. It says “I am done with the current loop iteration” without leaving the loop altogether.continue 명령문은 반복문( for 혹은 while 문 등 )이 실행되고 있는 것을 중단하고, 다음 반복의 시작 부분에서 재시작 하게 만듭니다. 예를 들어 현재 반복문을 아예 벗어나지 않는 상황에서 "현재 반복문에서 더 할일이 없어." 라고 하는 것으로 이해하면 쉽습니다^^.
정리하겠습니다.
continue 의 영향력의 범위는 loop 이고, 흐름을 제어하는 범위는 현재 반복문이 수행하고 있는 부분, 즉 여러 반복중에 한 번의 반복입니다. 그리고 다음 반복으로 갈 뿐이고 반복문을 중단하는 등의 큰 흐름의 변화는 없습니다.
The following example removes all vowels and spaces from a lowercase string to create a cryptic puzzle phrase:
다음 예제는 소문자 문자열에서 모든 모음과 공백을 제거하여 수수께끼 같은 퍼즐 문구를 만듭니다.
12345678910111213141516let puzzleInput = "great minds think alike"var puzzleOutput = ""let charactersToRemove: [Character] = ["a", "e", "i", "o", "u", " "]for character in puzzleInput {if charactersToRemove.contains(character) {continue//주어진 문자열에 소문자가 포함되어 있을 때 continue 가 호출된다//continue 의 영향력의 범위는 해당 조건문( if ) 에 영향을 미치는 것이 아닌//반복문( for문 ) 에 영향을 미치는 것입니다. 영향력의 범위 주의.//continue 가 실행되면 이후 모든 실행을 중단하고 다음 반복으로 넘어가는 것입니다.} else {puzzleOutput.append(character)}}print(puzzleOutput)// Prints "grtmndsthnklk"cs Break
The
break
statement ends execution of an entire control flow statement immediately. Thebreak
statement can be used inside aswitch
or loop statement when you want to terminate the execution of theswitch
or loop statement earlier than would otherwise be the case.break 명령문은 전체 제어 흐름을 즉시 중단합니다. switch 문 또는 loop 문을 다른 경우보다 먼저 종료하려면 break 문을 switch 문이나 loop 문 내부에서 사용하면 되는 것이죠.
정리하겠습니다.
break 의 영향력의 범위는 반복문과 switch 문이며, 흐름을 제어하는 범위는 즉시 전체 흐름을 중단하는 것입니다.
Break in a Switch Statement
This behavior can be used to match and ignore one or more cases in a
switch
statement. Because Swift’sswitch
statement is exhaustive and does not allow empty cases, it is sometimes necessary to deliberately match and ignore a case in order to make your intentions explicit.switch 문은 철저하고 빈 경우를 허용하지 않으므로 때때로 의도적으로 의도를 일치시키기 위해 의도적으로 일치시키고 무시해야 합니다.
The following example switches on a
Character
value and determines whether it represents a number symbol in one of four languages. For brevity, multiple values are covered in a singleswitch
case.1234567891011121314151617181920let numberSymbol: Character = "三" // Chinese symbol for the number 3var possibleIntegerValue: Int?switch numberSymbol {case "1", "١", "一", "๑":possibleIntegerValue = 1case "2", "٢", "二", "๒":possibleIntegerValue = 2case "3", "٣", "三", "๓":possibleIntegerValue = 3case "4", "٤", "四", "๔":possibleIntegerValue = 4default:break // 앞의 케이스에 해당하지 않는 모든 것들은 default 에 해당하므로 break 을 수행하게 된다.}if let integerValue = possibleIntegerValue { // 옵셔널 바인딩print("The integer value of \(numberSymbol) is \(integerValue).")} else {print("An integer value could not be found for \(numberSymbol).")}// Prints "The integer value of 三 is 3."cs Because it’s not practical to list every possible
Character
value in the example above, adefault
case handles any characters that are not matched. Thisdefault
case does not need to perform any action, and so it is written with a singlebreak
statement as its body. As soon as thedefault
case is matched, thebreak
statement ends theswitch
statement’s execution, and code execution continues from theif let
statement.위 예제에서 가능한 모든 문자 값을 나열하는 것은 실용적이지 않기 때문에 필요한 경우만 일치하지 않는 문자를 처리합니다. 이 경우에는 아무런 작업도 수행 할 필요가 없으므로 나머지 경우에( default ) swiftch 문을 벗어나게 합니다. ( break ) break 문이 실행 되면 switch 문은 벗어나게 되고 다음 문장인 if 문을 실행하게 되는 거죠.
if 문에서 옵셔널 바인딩을 이용해서 possibleIntegerValue 이 default 로 판별됬는지, case 로 판별됬는지 구분합니다.
Return
- 함수를 실행한 결과 함수 밖으로 값과 함께 흐름도 변경할 경우의 흐름제어- guard 구문에서 else 블록을 빠져나가기 위한 흐름제어정리하겠습니다.return 흐름을 제어하는 범위는 함수, 혹은 guard 의 { }밖으로, 즉 { } 밖으로 나가는 것라고 생각하면 될 것 같습니다.'스위프트: Swift > 스위프트: 언어자체: 문법' 카테고리의 다른 글
댓글