06.条件文と条件文


条件文


アプリケーションの所定の条件下での異なる動作

ドアが


if文は条件文であり、条件式が真である場合、条件文と一致する結果を実行します.
if 조건식1 {
	조건1을 만족할 경우 실행할 구문
} else if 조건식2 {
	조건2를 만족할 경우 실행할 구문
} else {
	만족하지 않으면 실행할 구문
}

スイッチドア


switch文は、変数または定数の標準データを最初に宣言し、これらのデータを複数のモードと比較して結果を一致させる条件文です.
switch 비교대상 {
	case 패턴1:
		비교대상이 패턴1일 경우 실행할 구문
	case 패턴2, 패턴3:
		비교대상이 패턴2, 3일 경우 실행할 구문
	default:
		비교대상이 위의 1,2,3 어느 패턴과도 일치하지 않을 때 실행할 구문
}
let temperature = 30

switch temperature {
	case -20...9:
		print("겨울입니다")
	case 10...14:
		print("가을입니다")
	case 15...25:
		print("봄입니다")
	case 26...35:
		print("여름입니다")
	default:
		print("이상기후입니다")
}
// "여름입니다"

ガードゲート


関数で使用し、guard文の条件を満たすと、対応する結果が実行されます.

複文


コードを繰り返し実行する構文

複文

for 루프상수(= 보통 i) in 순회대상(= '...'으로 정의하는 범위) {
	실행할 구문
}

複文

while 조건식 {
	실행할 구문
}
var number = 5

while number < 10 {
	number += 1
}

number
// 10

繰り返し

repeat {
	실행할 구문
} while 조건식
var x = 6

repeat {
	x += 2
} while x < 5

x
// 8

外来の


表示値はあってもなくてもかまいません.
var name: String = ""
// 값이 빈 문자열 ""인 것을 의미

var number: Int = 0
// 값이 정수 0인 것을 의미

var name: String?
var name: String? = nil
var name: String? = "Gunter"
// 모두 옵셔널한 상황을 전제하며, 값이 없을 수도(nil) 있음을 의미

var number: Int?
var number: Int? = nil
var number: Int? = 10
// 모두 옵셔널한 상황을 전제하며, 값이 없을 수도(nil) 있음을 의미
不人気な変数に不人気な値を代入することはできません.ゆったりした価格でOptional()形で包装されているからです.
var optionalName: String? = "Gunter"
print(optionalName)
// Optional("Gunter")


var requiredName: String = optionalName
// Value of optional type 'String?' must be unwrapped to a value of type 'String'...
これらのパッケージを外して、ゆったりした価格で自由に使えるようにするのが、いわゆる「ゆったりバインド」です.

外部バインド


通関を解除する方法は大きく2つあります.

明示的に無効


強制解除:外来と宣言された変数に!を加える.変数がnilであれば危険です!
var number: Int? = 3
print(number)
// Optional(3)

print(number!)
// 3
非強制解除(=バインド禁止):条件文を使用して安全に禁止を終了させます.
// if문을 활용한 옵셔널 바인딩
if let result = number {
	print(result)
}
// 3

// guard문을 활용한 옵셔널 바인딩
func test() {
	let number: Int? = 3
	guard let result = number else {
		return
	}
	print(result)
}

test()
// 3

黙示の解除


コンパイラによって自動的に閉じる
let value: Int? = 3
if value == 3 {
	print("value가 3입니다")
} else {
	print("value가 3이 아닙니다")
}
// "value가 3입니다"
タイプ変更による暗示解除
	let string = "3"
	var stringToInt: Int! = Int(string)
	print(stringToInt + 1)
	// 4