Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로그래머스 주사위 게임1
- 프로그래머스 조건에 맞게 수열 변경하기 3
- 프로그래머스 n번째 원소까지
- cocoapods 설치 오류
- 조건에 맞게 수열 변경하기 3
- 스페인어
- 연산자
- 프로그래머스 n의 배수 고르기
- 프로그래머스 암호 해독
- n번째 원소까지
- Error installing cocoapods
- 문자열 붙여서 출력하기
- 스파르타 코딩클럽 내일배움캠프
- ruby설치
- 프로그래머스 최댓값 만들기(2)
- 배열 만들기1
- swift
- 스파르타코딩캠프
- 주사위 게임1
- 프로그래머스 자동커밋
- Break
- Til
- 문자열 정렬하기 (1)
- 프로그래머스 문자열 붙여서 출력하기
- 프로그래머스 배열 만들기1
- array
- continue
- 프로그래머스
- 객체지향
- 프로그래머스 문자열 정렬하기 (1)
Archives
- Today
- Total
dev._.note
[Swift] 연산자, 조건문과 반복문 본문
📌 연산자
산술 연산자
- 덧셈
- +
- +=
- 뺄셈
- -
- -=
- 곱셈
- *
- 나눗셈
- /
- 나머지
- %
var result = 1 + 2
print(result)
// 출력값: 3
result += 5
// result = result + 5
print(result)
// 출력값: 8
result = 10 - 6
print(result)
// 출력값: 4
result -= 3
// result = result - 3
print(result)
// 출력값: 1
result = 8 * 2
print(result)
// 출력값: 16
result = 12 / 5
print(result)
// 출력값: 2
result = 10 % 3
print(result)
// 출력값: 1
// result는 10을 3으로 나눈 후 나머지 이므로 1
비교 연산자
비교 연산자는 비교한 값을 true와 false로 반환.
- 같다 / 같지 않다
- a == b
- !=
- 크다 / 작다
- a > b (a가 b보다 크다)
- a < b (a가 b보다 작다)
- 크거나 같다 / 작거나 같다
- a >= b (a가 b보다 크거나 같다)
- a <= b (a가 b보다 작거나 같다)
var result = (1 == 2)
print(result)
// 출력값: false
result = (1 != 2)
print(result)
// 출력값: true
result = (1 > 2)
print(result)
// 출력값: false
result = (1 < 2)
print(result)
// 출력값: true
result = (1 >= 2)
print(result)
// 출력값: false
result = (2 <= 2)
print(result)
// 출력값: true
논리 연산자
논리 연산자는 비교한 값을 true와 false로 반환.
- 논리 부정 NOT
- !a
- 논리 부정 연산자는 true를 false로, false 를 true로 반환.
- !a
- 논리 곱 AND
- a && b
- 논리 곱 연산자는 두 값(a, b)이 모두 true일 때 true를 반환.
- 첫번째 값이 false라면 두 번째 값을 판단하지 않고 즉시 false를 반환.
- a && b
- 논리 합 OR
- a || b
- 논리 합 연산자는 둘 중 하나가 true면 true를 반환.
- 첫번째 값이 true라면 두 번째 값을 판단하지 않고 true를 반환.
- a || b
var allowedEntry = false
allowedEntry = !allowedEntry
print(allowedEntry)
// 출력값: true
let enteredDoorCode = true
let passedRetinaScan = false
let permittedAccess = enteredDoorCode && passedRetinaScan
print(permittedAccess)
// 출력값: false
let enter = allowedEntry || permittedAccess
print(enter)
// 출력값: true
범위 연산자
- (a…b)
- a 이상 b 이하
- (a..<b)
- a이상 b 미만
- b는 범위에 포함되지 않습니다.
- a... ...a
- 범위의 시작 혹은 끝만 지정하여 사용하는 범위 연산자입니다.
- a는 범위에 포함됩니다.
(1...5)
// 1, 2, 3, 4, 5
(1..<5)
// 1, 2, 3, 4
(3...)
// 3, 4, 5, 6, 7 ...
let names = ["안나", "알렉스", "오드리", "잭"]
for name in names[2...] {
print(name)
}
// 출력값:
// 오드리
// 잭
for name in names[...2] {
print(name)
}
// 출력값:
// 안나
// 알렉스
// 오드리
for name in names[..<2] {
print(name)
}
// 출력값:
// 안나
// 알렉스
삼항 연산자
- a ? b : c
- question ? answer1 : answer2
- question의 답이 true이면 answer1을, false면 answer2 값을 사용.
- if-else 문을 간략히 표현함.
let height = 150
var nickname = (height > 185) ? "Daddy Long Legs" : "TomTom"
print(nickname)
// 출력값: TomTom
// 이를 if-else 문으로 표현하면
var nickname2 = ""
if height > 185 {
nickname = "Daddy Long Legs"
} else {
nickname = "TomTom"
}
주의할 점
Swift는 띄어쓰기도 신경써야 하는 언어.
예를들어 a - b 와 a -b는 완전히 다른 의미.
a - b는 a에서 b를 빼는 수식이고 a -b 는 a와 -b를 의미.
📌 조건문
if 문
- 조건을 확인하는 문법으로 if 문에 작성한 조건이 true인 경우에만 구현부 코드를 실행.
// if 뒤 "조건"은 Bool 타입 즉 true 혹은 false 이어야 합니다
if <#조건#> {
// 구현부 코드
}
var temperature = 17
if temperature <= 13 {
print("쌀쌀한 날씨가 지속되겠습니다.")
} else if temperature >= 22 {
print("해가 떠오르는 낮부터는 더위 예상됩니다.")
} else {
print("밤낮으로 선선한 날씨가 예상됩니다.")
}
// 출력값: 밤낮으로 선선한 날씨가 예상됩니다.
if true {
print("항상 실행됩니다")
}
// 출력값: 항상 실행됩니다
if false {
print("항상 실행됩니다")
}
// 출력값: (없음) - if 뒤 조건문이 false이므로 중괄호 내부 코드가 실행되지 않음
switch 문
- switch 문은 가능한 여러 개의 일치하는 케이스와 값을 비교. 그런 다음 일치하는 첫 번째 케이스를 기반으로 구현부 코드 블록을 실행.
- switch 문은 여러 잠재적 케이스에 대응하기 위해 if 문을 대신 사용할 수 있음.
- 열거형(enum)과 함께 자주 사용.
- 모든 케이스가 적용되지 않는 경우 default 에 구현된 코드가 실행되며, default는 항상 마지막에 표시.
- 특정 케이스에 실행 구문이 없을 경우 break 키워드를 반드시 사용.
- 특정 케이스에 해당되어 실행 구문이 실행된 이후에 다음 케이스 블럭을 실행하려면 fallthrough 키워드를 사용.
if <#조건#> {
// 구현부 코드
}
switch <#조건#> {
case <#값 1#>:
// 구현부 코드
case <#값 2#>,
<#값 3#>:
// 구현부 코드
default:
// 모든 케이스가 적용되지 않는 경우
// 구현부 코드
}
let cookieCount = 62
let message: String
switch cookieCount {
case 0:
message = "🍪 없음 🙅♂️"
case 1..<5:
message = "🍪 아주 조금 있음"
case 5..<12:
message = "🍪 조금 있음"
case 12..<100:
message = "🍪 꽤 있음 🍪"
case 100..<1000:
message = "🍪🍪 많음 🍪🍪"
default:
message = "🍪🍪🍪엄청 많음🍪🍪🍪"
}
print(message)
// 출력값: "🍪 꽤 있음 🍪"
let species = "시츄"
switch species {
case "말티즈" :
print("말티즈입니다")
case "시츄":
break // 실행 구문이 없을때는 반드시 break를 써주어야 함
default:
print("강아지입니다")
}
var number = 5
switch number {
case ..<5:
print("under 5")
fallthrough
case 5:
print("5")
fallthrough // 해당 케이스의 구문이 실행된 이후에도 무조건 다음블럭을 실행함
default:
print("default")
}
// 출력 결과
// 5
// default
// default를 사용하지 않는 예시
enum Day {
case monday, tuesday, wednesday, thursday, friday, saturday, sunday
}
func activities(for day: Day) {
switch day {
case .monday:
print("월요일: 회사 회의")
case .tuesday:
print("화요일: 운동 가기")
case .wednesday:
print("수요일: 책 읽기")
case .thursday:
print("목요일: 친구와 만나기")
case .friday:
print("금요일: 영화 보기")
case .saturday:
print("토요일: 쇼핑하기")
case .sunday:
print("일요일: 가족과 시간 보내기")
}
}
activities(for: .monday)
activities(for: .friday)
📌 반복문
for 문
For - in 반복문
- for문은 순회할 수 있는 타입(배열, 딕셔너리 등)을 순회하거나 특정 횟수만큼 로직을 반복할 때 주로 사용
for 각 value의 변수 이름 in 순회할 수 있는 타입 {
// 내부 로직
}
let alphabets: [String] = ["a", "b", "c", "d"]
for character in alphabets {
print(character)
}
// 출력값:
// a
// b
// c
// d
let students = ["Tom": 2, "Harry": 4, "Sarah": 1]
for (name, grade) in students {
print("\(name) 은 \(grade) 학년이야")
}
// 출력값:
// Tom 은 2 학년이야
// Harry 은 4 학년이야
// Sarah 은 1 학년이야
while 문
- while문은 특정 조건이 만족하는 동안 내부로직을 계속해서 실행하는 반복문입니다.
- 종결 조건을 정해주지 않으면 무한루프가 생길 위험성이 있습니다.
- while문은 반복문의 각 패스가 시작할 때 조건을 평가합니다.
// while 뒤의 "조건"은 Bool 타입, 즉 true 혹은 false이고, true일때 중괄호 내부 코드 실행
while <#조건#> {
// 구현 코드
}
let lastName : [String] = ["송", "김", "박", "정" ]
var index : Int = 0
while index < 4 {
print("옆집 \(lastName[index]) 씨네 \(index)번째 결혼식")
index += 1
}
// 출력값:
// 옆집 송 씨네 0번째 결혼식
// 옆집 김 씨네 1번째 결혼식
// 옆집 박 씨네 2번째 결혼식
// 옆집 정 씨네 3번째 결혼식
while true {
print("Hello") // Hello 가 계속 출력됨
}
'Dev > SWIFT' 카테고리의 다른 글
[Swift] Array와 Set, Dictionary (1) | 2023.11.29 |
---|---|
[Swift] Queue와 Stack (0) | 2023.11.29 |
[Swift] 데이터 타입 (0) | 2023.11.28 |
[Swift] 프로퍼티와 출력, 함수 (1) | 2023.11.27 |
[Swift] Playground (0) | 2023.11.27 |