Swift 문법종합 - 조건문

동그라미·2024년 11월 6일
2

6. 조건문


- if문 실습
var age = 15

if age >= 20 {
	print("20살이 넘은 성인입니다")
} else if age >= 17 {
	print("20살 미만이고 17살 이상인 고등학생입니다.")
} else if age >= 14 {
	print("17살 미만이고 14살 이상인 중학생입니다.")
} else {
	print("어린이 입니다!")
}

// 위의 코드를 한줄씩 번역해 볼게요!
let age = 15  // age 상수에 15를 할당합니다.

if age >= 20 { // 만약 age가 20 이상이면 아래 코드블록을 실행합니다.
	print("20살이 넘은 성인입니다")
} else if age >= 17 { // 만약 age가 20 미만이고 17이상이면 아래 코드블록을 실행합니다.
	print("20살 미만이고 17살 이상인 고등학생입니다.")
} else if age >= 14 { // 만약 age가 17 미만이고 14이상이면 아래 블록을 실행합니다.
	print("17살 미만이고 14살 이상인 중학생입니다.")
} else { // 위의 조건들이 모두 false이면 else 의 code block을 실행합니다.
	print("어린이 입니다!")
}


if 10 > 20 { // 만약 10 이 20보다 크다면 아래 코드블록을 실행합니다.
	print("10은 20보다 큽니다!!!")
} else { // 만약 10이 20보다 크지 않다면 아래 코드블록을 실행합니다.
	print("10은 20보다 작습니다!!!")
}

- 조건문 실습 1

let score = 80

switch score {
	case 90...100:
	    print("A 등급 입니다!")
	case 80..<90:
	    print("B 등급 입니다.")
	case 70..<80:
	    print("C 등급 입니다.")
	default:
	    print("D 등급 입니다.")
}

// 번역

let score = 80 // score 이름의 상수에 80을 할당합니다.

switch score { // score를 switch 코드블록에 넣습니다. 
	case 90...100: // score가 90이상 100점 이하일 때 아래 코드를 실행합니다.
	    print("A 등급 입니다!")
	case 80..<90: // score가 80이상 90미만일 때 아래 코드를 실행합니다.
	    print("B 등급 입니다.")
	case 70..<80: // score가 70이상 80미만일 때 아래 코드를 실행합니다.
	    print("C 등급 입니다.")
	default: // score가 위에 조건문에서 true가 하나도 없었다면 아래 코드를 실행합니다.
	    print("D 등급 입니다.")
}

- 조건문 실습 2

**var score = 50

switch score {
	case 90...:
		break
	default:
		print("공부를 더 하세요!")		
}

// 출력 
// "공부를 더 하세요!"

switch score {
case 50...:
    print("50점 이상이시군요")
    fallthrough
case 50:
    print("딱 50점이시네요?")
default:
    print("공부를 더 하세요!")
}

// 출력 
// "50점 이상이시군요"
// "딱 50점이시네요?" 


// 번역
var score = 50 // score 라는 변수에 값 50을 할당합니다.

switch score { // score를 switch 코드블록에 넣습니다.
	case 90...: // score가 90보다 크다면 아래 코드를 실행합니다.
		break     // 아무런 행동을 하지 않고 코드블록에서 탈출합니다.
	default:   // score가 위의 조건에 맞지 않는다면 아래 코드를 실행합니다.
		print("공부를 더 하세요!")		 
}

// 출력 
// "공부를 더 하세요!"

switch score { // score를 switch 코드블록에 넣습니다.
case 50...: // score가 50 이상이면 아래 코드를 실행합니다.
    print("50점 이상이시군요")
    fallthrough // 아래의 case도 확인합니다.
case 50: // score가 50이면 아래 코드를 실행합니다.
    print("딱 50점이시네요?")
default: // score가 위의 조건에 맞는게 없다면 아래 코드를 실행합니다.
    print("공부를 더 하세요!")
}

프로그램의 흐름을 제어하는 문법으로, 특정 조건이 true 인지 false인지에 따라 코드블록을 실행하거나 건너뛸 수 있습니다.

**- if

**

  • 조건이 true 이면 코드 블록을 실행하고, false 이면 else 의 코드블록이 실행됩니다.
  • if 와 else 중간에 조건을 추가하려면 else if 로 조건을 추가할 수 있습니다.

- if문 실습

if 10 > 20 { // 만약 10 이 20보다 크다면 아래 코드블록을 실행합니다.
	print("10은 20보다 큽니다!!!")
} else { // 만약 10이 20보다 크지 않다면 아래 코드블록을 실행합니다.
	print("10은 20보다 작습니다!!!")
}


var age = 15 

if age >= 20 {
	print("20살이 넘은 성인입니다")
} else if age >= 17 {
	print("20살 미만이고 17살 이상인 고등학생입니다.")
} else if age >= 14 {
	print("17살 미만이고 14살 이상인 중학생입니다.")
} else {
	print("어린이 입니다!")
}

/*
// 위의 코드를 한줄씩 번역해 볼게요!
var age = 15  // age 상수에 15를 할당합니다.

if age >= 20 { // 만약 age가 20 이상이면 아래 코드블록을 실행합니다.
	print("20살이 넘은 성인입니다")
} else if age >= 17 { // 만약 age가 20 미만이고 17 이상이면 아래 코드블록을 실행합니다.
	print("20살 미만이고 17살 이상인 고등학생입니다.")
} else if age >= 14 { // 만약 age가 17 미만이고 14 이상이면 아래 블록을 실행합니다.
	print("17살 미만이고 14살 이상인 중학생입니다.")
} else { // 위의 조건들이 모두 false이면 else의 code block을 실행합니다.
	print("어린이 입니다!")
}
*/

- Guard

  • guard 는 조건이 false일 때 코드를 더이상 실행시키지 않고 코드블록을 빠져나가는 조건문입니다.
  • 조건이 true일 경우 코드를 계속 진행하고, false일 경우 else 코드 블록에서 탈출해야합니다.
  • else 블록은 필수입니다.
guard 조건 else { 
	// 조건이 false 일 때 실행되는 코드블록  
	// return, break, continue, throw등 코드블록을 종료하는 구문이 필요
	return 
}

// 만약 위에서 조건이 false라면 아래 코드는 실행되지 않습니다.
// ealry exit (빠른 탈출)이라고도 불립니다.

// 조건이 true이면 아래의 코드를 게속 진행합니다.

// 반복문에서 사용하는 guard

for i in 0...10 {
	print(i)
	guard i < 5 else { break }  
}

/* 출력 값
0
1
2
3
4
5
*/

// 한국말로 풀어보기
for i in 0...10 { // 0부터 10까지 반복합니다. 현재값은 i에 넣습니다.
	print(i) 
	guard i < 5 else { break }   // i가 5보다 작다면 true이기 때문에 계속 진행합니다.
															 // i가 5보다 크다면 false이기 때문에 else 코드블록을 실행합니다.
															 // else 코드블록에서는 for 반복문을 탈출하는 break 
}

if vs guard

  • if 조건문은 true 일 때 코드블록을 실행하고, false 일 때 다른처리를 할 수 있습니다.
  • guard 조건문은 false일 때 즉시 탈출하는 방식입니다.
  • if 조건문은 코드블록을 명시적으로 작성해야 하지만 guardtrue 일 때 코드블록이 없고 계속 진행합니다.

- guard 는 아래의 더이상 코드를 진행하지 못하게 하는 경비원 같은 존재

- if는 코드블록에 들어갈 수 있는 티켓
놀이공원에 입장하려면 티켓이 필요해요.
그리고 놀이공원 안에서만 사용할 수 있다고 생각하면 된다.

Switch

  • 하나의 값을 여러 경우와 비교하는 조건문입니다.
  • 모든 경우의 조건을 처리해야 합니다.
  • case, default 를 사용해서 조건들에 맞는 코드를 실행할 수 있습니다.
  • case 에서 조건을 확인하여 조건이 맞다면 코드를 실행하고 switch 코드블록에서 빠져나갑니다.
  • case 에서 맞는 조건이 없다면 default 에서 구현한 코드가 실행됩니다.
  • case, default 조건 뒤에는 : 을 사용하여 동작을 구현해야 합니다.
  • case 에서 실행하고 싶은 코드가 없다면 break 키워드를 사용해야 합니다.
    • 아무런 코드가 없으면 빌드오류가 발생합니다.
  • case 에서 조건이 없다면 default 코드를 실행합니다.
  • case 에서 조건이 맞아서 실행된 후 아래의 조건도 확인하고 싶다면 fallthrough 키워드를 사용해야 합니다.

- 조건문 실습 1

let score = 80

switch score {
	case 90...100:
	    print("A 등급 입니다!")
	case 80..<90:
	    print("B 등급 입니다.")
	case 70..<80:
	    print("C 등급 입니다.")
	default:
	    print("D 등급 입니다.")
}

// 번역
let score = 80 // score 이름의 상수에 80을 할당합니다.

switch score { // score를 switch 코드블록에 넣습니다. 
	case 90...100: // score가 90이상 100점 이하일 때 아래 코드를 실행합니다.
	    print("A 등급 입니다!")
	case 80..<90: // score가 80이상 90미만일 때 아래 코드를 실행합니다.
	    print("B 등급 입니다.")
	case 70..<80: // score가 70이상 80미만일 때 아래 코드를 실행합니다.
	    print("C 등급 입니다.")
	default: // score가 위에 조건문에서 true가 하나도 없었다면 아래 코드를 실행합니다.
	    print("D 등급 입니다.")
}

- 조건문 실습 2

var score = 50

switch score {
	case 90...:
		break
	default:
		print("공부를 더 하세요!")		
}

// 출력 
// "공부를 더 하세요!"

switch score {
case 50...:
    print("50점 이상이시군요")
    fallthrough
case 50:
    print("딱 50점이시네요?")
default:
    print("공부를 더 하세요!")
}

// 출력 
// "50점 이상이시군요"
// "딱 50점이시네요?" 


// 번역
var score = 50 // score 라는 변수에 값 50을 할당합니다.

switch score { // score를 switch 코드블록에 넣습니다.
	case 90...: // score가 90보다 크다면 아래 코드를 실행합니다.
		break     // 아무런 행동을 하지 않고 코드블록에서 탈출합니다.
	default:   // score가 위의 조건에 맞지 않는다면 아래 코드를 실행합니다.
		print("공부를 더 하세요!")		 
}

// 출력 
// "공부를 더 하세요!"

switch score { // score를 switch 코드블록에 넣습니다.
case 50...: // score가 50 이상이면 아래 코드를 실행합니다.
    print("50점 이상이시군요")
    fallthrough // 아래의 case도 확인합니다.
case 50: // score가 50이면 아래 코드를 실행합니다.
    print("딱 50점이시네요?")
default: // score가 위의 조건에 맞는게 없다면 아래 코드를 실행합니다.
    print("공부를 더 하세요!")
}
profile
맨날 최선을 다하지는 마러라. 피곤해서 못산다.

0개의 댓글