안녕하세요!!
오늘은 반복문 마지막입니다!!
foreach구문과 앞에서 다뤘던 for문을 비교와 추가적으로
다중 for문을 다루고자 만들었습니다
이전 for구문과
while구문이 궁금하시다면
글자를 클릭하셔서 샤샤샥 보고 오시기를 추천드립니다!
이중 for문은 대표적으로 코딩을 할 때 다들.. 구구단 한 번 만들어보셔야
코딩 찍먹은 했다라고 말을 할 수 있습니다
이게 바로 구문의 중첩이라고 말할 수 있습니다
단순하게 중첩하지않고 구구단 8단을 만들거나 9단을 만들 수 있지만
2단부터 9단까지 만드는건
for문을 중첩해서
출력할 수 있다는 말씀!
글로 말하는거보다 코드로 설명하는게 더 낫겟져?
8단을 만들어보고자합니다
그럼 이렇게 하단으로 나타낼 수 있겠죠?
만약 2단부터 8단까지 만들어라고하면??!
x 1이고 y loop문을 순회할때 9번을 돌고 나온 후
그다음 x 2 y loop문으로 9번 돌고.... 이런식으로 사이클이 진행됩니다
위에서 저렇게 조건식을 넣지 않아도
x바로 아래에 넣어서 사용하는 방법도 있답니다
껄껄!
만약 정말 루프가 세개 네개가 된다면.... 이건.. 정말 안됩니다..
for문은 겹쳐질 수록 가독성이 안좋아지기 때문이죠
무튼 저번에 다루지 않았던 이중 for문을 끝내고
foreach와 for문의 차이와 특징에 대해서 알아보고자 합니다
forEach
반복적으로 실행하는 코드를 파라미터로 받고 저장된 요소는 클로저 상수로 전달이 된답니다
forEach는 for-in 루프를 대체하는데 사용이 된답니다
for-in 루프 컬렉션의 모든 요소를 반복하고 각 요소에 대해 작업을 수행하지만
forEach는 각 요소에 대해 클로저를 호출하여 작업을 수행합니다
함수형(1급 객체~) 프로그래밍 스타일에 가깝습니다!
클로저 함수 이게 모야...
우선 이런게 있다.. 하고 넘어가시면 됩니다
복잡하게 생각하지말고 음.. 이런게 있구나..
쉽게 말해서
for - in 루프는
루프 변수를 사용하여 반복문을 제어
하지만
forEach메서드는
클로저를 사용하여 각 요소를 처리
합니다
클로저를 보통 익명함수 즉 다른 언어에서는 람다식이라고 많이들 부르죠!
하지만 이걸 설명하는것보다 우선 코드로 아~ 이런게 있구나 습득하는게 낫기 때문에
코드로만 우선 설명하도록 하겠습니다
다음으론 for - in 루프를 사용하여 위와 똑같이 출력하도록 할게요!
두 코드의 결과값은 동일하지만 forEach문은?
더 간결하다!
함수형인 스타일이다!
(그래서 forEach는 반복문이 아니라 클로저를 파라미터로 넘겨주는 메서드 즉 함수형)
를 알 수 있습니다
그리고break와 continue문을 사용해서 클로저의 호출을 통해
종료하거나 다음 루프로 건너 뛸 수가 없습니다!
그냥 제어도 못하고 직진하는 녀석이야?..라고 생각합시다 우리
마지막으로 for-in경우 반복문에서 return을 만나는 경우 어떻게 될까요??
아직 return을 정리하지 않았지만
return을 만나게되면 종료된다라고 생각하시면 됩니다
그래서 forEach에 return을 넣는다고 해도 반복횟수에 영향이 1도 가지 않는답니다?
이게 무슨말이라고요?
오오오!!!??
10, 20 , 30, 40, 50이 출력되는게 보이져?
그럼 for-in에 return을 사용해본다면?
응 .10. 종료.
그리고 for - in 처럼 index를 너무너무 알고싶어요 ㅠㅠ
한다면???
enumerated() 메서드를 사용하거나 indices 프로퍼티를 사용하면 된답니다
사용하게되면
각각 배열의 요소와 인덱스를 쉽게 접근이 가능하다구요!
아주 친절하게 설명해 준답니다?!
오늘은 간단하게 이중포문과 for in과 forEach에 대해서 정리해보았습니다
:)
** 잘못된 정보가 있다면 꼭 댓글로 알려주세요!**
'Swift' 카테고리의 다른 글
Swift | 제어 전달문 - break / continue / fallthrough / return (0) | 2024.05.10 |
---|---|
Swift | 조건문에 관하여 - if / swift / guard (0) | 2024.05.09 |
Swift 공식문서| 제어 흐름 (Control Flow)에 관하여 - 반복문 while문 (0) | 2024.05.09 |
Swift 공식문서| 제어 흐름 (Control Flow)에 관하여 - 반복문 for문 (0) | 2024.05.09 |
Swift 공식문서| The Basic 기본연산자에 관하여 (0) | 2024.05.08 |