스위프트 Swift 기초 공부 #4 if-else, switch, for-in, while ,repeat-while, 조건문과 반복문

사공 오·2022년 5월 19일
0

Swift 기초 공부

목록 보기
3/6
post-thumbnail

조건문 conditional

if-else 구문

if 뒤의 조건 값에는 Bool 타입의 값만 위치해야 한다
조건을 감싸는 소괄호는 선택사항

 if 조건 {
      /* 실행 구문 */
 } else if 조건 {
     /* 실행 구문 */
 } else {
     /* 실행 구문 */
 }
let someInteger = 100

if someInteger < 100 {
    print("100 미만")
} else if someInteger > 100 {
    print("100 초과")
} else {
    print("100")
} // 100

switch 구문

- 스위프트의 switch 구문은 다른 언어에 비해 굉장히 강력한 힘
- 정수타입의 값뿐만 아니라 대부분의 스위프트 기본 타입을 지원하며, 다양한 패턴과 응용 가능.

- 명시적 break를 하지 않아도 자동으로 case마다 break 됩니다.
- fallthrough 키워드를 사용하여 break를 무시할 수 있습니다.
- 쉼표(,)를 사용하여 하나의 case에 여러 패턴을 명시할 수 있습니다.

- 각각의 case 내부에는 실행가능한 코드가 반드시 있어야함
- default 구문은 반드시 작성 (매우 한정적인 값(ex. enum의 case 등)이 비교값이 아닌 한)

 switch 비교값 {
 case 패턴:
     /* 실행 구문 */
 default:
     /* 실행 구문 */
 }

// 범위 연산자를 활용하면 더욱 쉽고 유용합니다
switch someInteger {
case 0:
    print("zero")
case 1..<100: // ..< 이상 미만
    print("1~99")
case 100:
    print("100")
case 101...Int.max: // ... 이상 이하
    print("over 100")
default:
    print("unknown")
} // 100


// 정수 외의 대부분의 기본 타입을 사용할 수 있다
switch "john" {
case "jake", "john": //쉼표(,)를 사용하여 하나의 case에 여러 패턴을 명시
    print("jake or john")
case "mina":
    print("mina")
case "ony":
    print("ony!!")
default:
    print("unknown")
} //jake or john


switch "mina" {
case "jake", "john":
    print("jake or john")
case "mina":
    print("mina")
    fallthrough // break 무시하기 가능
case "ony":
    print("ony!!")
default:
    print("unknown")
} //mina \n ony!!
  • switch문 예제
let someInteger1 = 50

switch someInteger1 {
case 0:
     print("zero")
case 1..<100:
     print("1~99")
case 50:
     print("50")
default: //디폴트 없으면 실행불가능 !!
    print("unknown")
}
//디폴트 있으면 1~99 출력됨

반복문 loop

for-in 구문

- 기존 언어의 for-each 구문과 유사하다
- Dictionary의 경우 이터레이션 아이템으로 튜플이 들어온다

for item(이터레이션으로 들어올 아이템) in items(이터레이션을 돌 콜랙션타입) {
    /* 실행 구문 */ 이터레이션을 돌면서 실행구문을 반복적으로 실행
}
var integers = [1, 2, 3]
let people = ["ony": 10, "eric": 15, "mike": 12] //딕셔너리

for integer in integers {
    print(integer)
} //1 \n 2 \n 3

// Dictionary의 item은 key와 value로 구성된 튜플 타입으로 들어가게됨
for (name, age) in people { //name이 key, age가 value
    print("\(name): \(age)")
} // ony: 10 \n eric: 15 \n mike: 12

while 구문

while 조건 {
     /* 실행 구문 */
 }
while integers.count > 1 {
    integers.removeLast()
}

repeat-while 구문

- 기존 언어의 do-while 구문과 형태/동작이 유사 - do를 사용하지않는 이유는 오류처리구문에서 사용되기때문이다
- 먼저 실행된 이후 조건확인

 repeat {
   실행 구문
} while 조건
repeat {
    integers.removeLast()
} while integers.count > 0

0개의 댓글