[Swift] 반복문, 조건문 (제어문) for, while, if, guard, switch-case

김영민·2022년 5월 18일
0

반복문

for 반복문

기본 반복문

//ex1
for i in 0..<10 {
	print(i)
} //0 1 2 3 4 5 6 7 8 9 

//ex2
for item in [1,2,3,4,5] {
	print(item)
} // 1 2 3 4 5
  • 범위 연산자를 통해 for문 가능합니다.
  • array나 set을 통해 for문 가능합니다.

딕셔너리-튜플

for (kor,eng) in dic1 {
	print("key: \(kor) value: \(eng))"
  • 딕셔너리를 튜플로 for문을 돌릴 수 있습니다.

문자열에서의 반복문

for ch in str {
	print(ch)
}
  • 문자열의 문자가 순서대로 출력됩니다.

while 반복문

기본

while i < 10 {
	i += 1
}
  • while 뒤에 조건문은 괄호가 붙지 않습니다 !( C언어와 다르게)
var j = 0
repeat {
    j += 1
    print(j)
    if j > 10 {
        break
    }
  
}  while true
  • 다른 언어에서 do-while문이 swift는 repeat-while문으로 쓰입니다.

조건문

if 조건문

  • 조건부의 괄호 생략 가능합니다.
  • 바디의 중괄호는 생략 불가능합니다! (단 1줄이어도 불가능합니다)

if-else

  • else if도 바디의 중괄호는 생략은 불가능합니다 !

if-let 바인딩

if let val = someFunc() {
	print("\(val")
}
  • 유효한 값이 아니면 val에 nil을 저장합니다.

버전 검사

if #available(iOS 10, macOS 10.12.*) {
	//iOS 10 이상, macOS 10.12 이상
}
  • #available을 통해 버전에 따라 달리 사용해야 할 때 유용하게 사용할 수 있습니다.

Early Exit

함수와 반복문에서 Exit

  • 정상 종료 : 함수 실행 완료, 반복 조건 채우기
  • 종료 외의 Exit : 정상 흐름과 다른 상황에서 마치기
  • 함수나 반복문은 다수의 Exit 작성 가능
  • Early Exit: 실행 전 조건을 먼저 검사, 조건에 맞지 않으면 Exit

guard

  • Early Exit 용으로 사용.

  • guard [조건] else {} 구조로 사용합니다

switch 조건문

  • 조건에 맞는 case 하나만 실행하고 끝남.
  • break 불필요
  • fallthrough: 다음 case도 실행하는 것.

case 작성

  • 모든 상황에 대한 case를 작성해야 하고, 불가능하다면 default 필수 !
  • case 1,2,3: 처럼 여러 개로 가능.

switch에서 밸류 바인딩

var point = (4,2)
switch point {
case (4,let y) :
	print(y) //2
case (let x, 2) :
	print(x) //4
 }
  • 튜플 중 한 부분이 맞으면 다른 한쪽의 변수에 switch의 조건부분의 값을 저장합니다.

switch에서 바인딩과 조건 : where

var point = (-1,-3)

switch point {
case let (x,y) where x>0 && y>0 :
    print("1사분면")
case let (x,y) where x<0 && y>0 :
    print("2사분면")
case let (x,y) where x<0 && y<0 :
    print("3사분면")
case let (x,y) where x>0 && y<0 :
    print("4사분면")
default : print("error")
}
  • case의 조건을 작성할 때 where을 사용합니다.

0개의 댓글