5-3.if 조건문

🌈 devleeky16498·2022년 4월 11일
0

조건문은 조건에 따라서 코드의 흐름을 제어할 때 사용한다. 스위프트에 코드 조건부를 추가하는 방법은 if와 switch구문 두 가지로 제공한다. 일반적으로 if구문은 가능한 결과가 적은 간단한 조건에 적합하다. switch 구문은 가능한 겨로가가 여러개이며 더 복잡한 조건에 적합하고 실행해야 할 적절한 코드 분기를 선택해야 하는 패턴매칭에 적합하다.

if 조건문

  1. 가장 간단한 형식으로 단일 if 조건을 가진다. 조건이 true 일때만 구문을 실행한다.
var temperature = 30

if temperature < 30 {
	print(temperature)
}
// 만약 temperature 변수의 값이 30보다 작은 경우 클로저를 수행하게 된다.
  1. if 구문은 if 조건이 false 일 때에 대해서도 구문 제공이 가능하며 else를 쓴다.
 var temperature = 30

if temperature < 30 {
	print(temperature)
} else {
	print("now is fun")
}
//if 조건문의 값이 false 인 경우 else 클로저가 실행된다.
  1. 추가절을 통해서 조건을 세분화 할 수 있으며, else if를 통해 조건을 추가한다.
 var temperature = 30

if temperature < 30 {
	print(temperature)
} else if temperature > 10 {
	print("better")
} else {
	print("now is fun")
}

switch 조건문

스위치 구문은 값을 고려하고 가능한 여러 일치패턴과 비교한다. 이는 여러 가능한 상태에 대해 응답하기 위해서 if구문의 대체 구문으로 제공한다.

  1. switch구문은 각각 case 키워드로 시작하는 여러개의 가능한 케이스로 구성되어 있다. if 구문의 바디와 같이 각 case는 코드 실행부분이 분리되어 있다. switch 구문은 실행될 부분을 선택하는데 이를 값에 스위칭 한다고 말한다.
  2. switch 구문은 완벽해야 한다. 따라서 고려해야하는 모든 조건을 빠짐없이 케이스로 나타내야 한다. 기본 케이스는 마지막에 default로 나타내고 항상 마지막에 위치시킨다.
let someCharacter : Character = "z"

switch someCharacter {
	case "a":
    	print("a")
    case "z":
    	print("z")
    default:
    	print("default")
  1. 케이스를 단일화 해서 선언하고 싶은 경우 , 쉼표를 사용하여 나타내준다.
let someCharacter : Character = "z"

switch someCharacter {
	case "a", "z":
    	print("z")
    default:
    	print("default")
  1. 숫자 범위에 대한 case 또한 제공한다.
let someCharacter : Int = 12

switch someCharacter {
	case 1...10:
    	print("a")
    case 11...20:
    	print("z")
    default:
    	print("default")
  1. 튜플에 대한 switch 구문이 가능하며, 어떠한 값도 일치하도록 하기 위해 언더바를 사용할 수 있다.
let somePoint = (1, 1)

switch somePoint {
	case (0, 0):
    	print("origin")
    case (_, 0):
    	print("X-axis")
    case (0, _):
    	print("Y-axis")
    case (-1...1, -1...1):
    	print("inside")
    default:
    	print("default")
//다음처럼 사용할 시 언더바의 활용을 볼 수 있다. 
//또한 각 케이스에 닫힌 범위 연산자를 사용하여 케이스 범위를 지정해 줄수도 있다.
  1. where절을 사용해서 추가 조건을 붙여줄 수 있다.
let point = (1, -1)

switch point {
	case let (x, y) where x == y:
    	print("(\(x), \(y)) is on the line x == y")
	case let (x, y) where x == -y:
    	print("(\(x), \(y)) is on the line x == -y")
    case let(x, y):
    	print("(\(x), \(y))")

// 상수가 지닌 조건을 판별하여 리턴값을 체크해줄 수 있다.
  1. 혼합 케이스 사용이 가능하며, 값 바인딩을 포함 가능하다.
let point = (9,0)
switch point {
case (let distance, 0), (0, let distance):
	print("on an axis, \(distance) from the origin")
default:
	print("not on axis")
}
//다음과 같이 케이스를 혼합하여 같은 값을 수행하도록 흐름 제어가 가능하며, 값 바인딩 또한 가능하다.
profile
Welcome to Growing iOS developer's Blog! Enjoy!🔥

0개의 댓글