[Swift] 흐름 제어 구문(반복문, 조건문, 제어전달문)

민니·2022년 5월 20일
0

Swift 문법

목록 보기
3/17

😆 흐름 제어 구문 😀

  • 반복문
  • 조건문
  • 제어전달문


흐름 제어 구문이란?

프로그램 실행 과정에서 실행 흐름을 능동적으로 제어하기 위해 사용되는 구문



반복문

  • 주어진 조건에 의해 특정 코드 블록을 반복적으로 실행할 수 있게 해 줌.
  • 코드 블록의 반복을 루프라고 함.
  • for 반복문, while 반복문이 있음.

- for 반복문

  • 횟수에 의한 반복
  • 형태
        for <루프 상수> in <순회 대상> {
                //code
        }
  • 순회 대상
    순회 대상은 순서를 가지는 집단 자료형이나 범위를 가지는 데이터가 사용된다. ex) 배열, 딕셔너리, 집합, 범위 데이터, 문자열
  • 루프 상수
    루프 상수는 반복될 때마다 순회 대상이 가진 아이템들을 차례로 받아 저장하고 코드에서 사용할 수 있게 함. 루프 상수는 for~in 구문 내에서만 사용할 수 있다. (루프 구문이 순회할 때마다 자동으로 재선언되므로 직접 선언할 필요가 없음!)
  • Example
		for row in 1...5 {
        	print(row)
        }
    	//출력
        1
        2
        3
        4
        5
        
  • 루프 상수의 생략
    순회 대상의 크기만큼 반복하는 것이 목적인 경우.
    루프 상수에 _ 사용하기

- while 반복문

  • 주어진 조건을 만족하는 동안은 계속 실행
  • 실행 횟수가 명확하지 않을 때, 실행 횟수를 기반으로 할 수 없는 조건일 때 사용
  • 형태
		while <조건식> {
        	<실행할 구문>
        }

- repeat-while 구문

  • 다른 언어의 do-while 구문과 같음
  • 코드를 한번 실행한 다음에 조건식을 평가하여 반복 여부 결정
    ( = 실행 코드의 수행을 최소 한 번은 보장함)
  • 형태
		repeat {
        	<실행할 구문>
        }
        while <조건식>


조건문

  • 조건에 따라 특정 구문을 실행하도록 함
  • if문, guard문, switch문이 있음

- if문

  • 조건을 평가하여 결과에 따라 코드의 실행 여부 결정함.
  • 형태
		if <조건식> {
        	<실행할 구문>
        }
  • if-else, if-else if 구문도 있음.
    조건에 따라 적절하게 사용하자!

- guard문

  • gurad문에는 else 블록은 필수이지만, 표현식의 결과가 참일 때 실행되는 블록은 없음!
  • 주로 다음 코드가 실행되기 전에 특정 조건을 만족하는지 확인하는 용도로 사용
  • 형태
        guard <조건식 또는 표현식> else {
                <조건식 또는 표현식의 결과가 false일 때 실행 코드>
        }

- switch 문

  • 입력받은 값을 조건식 여부가 아니라 패턴으로 비교
  • 여러 개의 조건을 비교할 때 사용하면 효율적
  • 형태
		switch <비교 대상> {
        	case <비교 패턴1>:
            	//비교 패턴1과 일치했을 때 실행할 구문
            case <비교 패턴2>:
            	//비교 패턴2와 일치했을 때 실행할 구문
            default:
            	//어느 패턴과도 일치하지 않을 때 실행할 구문
  • 다른 언어들과 달리 각 케이스마다 break를 걸어주지 않아도 됨.

  • fallthrough: fallthrough가 명시된 case에서는 비교 패턴이 일치할 경우 인접한 case 블록으로 실행 흐름을 전달함.



제어 전달문

  • 코드의 한 부분에서 다른 부분으로 제어 흐름을 전달하여 코드가 실행되는 순서를 변경해 줌
  • break, continue, fallthrough, return이 있음

break

  • 반복문 내에서 break 사용 시 반복문의 전체 실행을 즉시 종료하고 반복문 다음 코드를 씰행함.

continue

  • 이 구문 아래에 있는 실행 구문들을 건너뛰고 다음 반복을 시작함

구문 레이블

  • 중첩된 구문에서 continue 구문이나 break 구문을 사용하려면 헷갈릴 수가 있음. 중첩된 구문의 continue나 break 구문이 어떤 구문을 멈추거나 다시 시작해야 할지 모르기 때문이당.
  • 이를 위해, swift에서는 반복문이나 조건문 구문에 레이블을 붙일 수 있도록 함
  • 형태
		<레이블 이름>: while <조건식> {
        	//실행할 구문
        }
        
        break <레이블 이름>
        continue <레이블 이름>
  • Example
		outer: for i in 1...5 {
        	inner: for j in 1...9 {
            	//j가 2이면 break
              	if (j==2) {
                	break outer;
                }
                print("\(i) X \(j) = \(i*j)")
             }
         }

0개의 댓글