-
[Swift] 조건문/반복문 기초 (if, switch/for, while)Swift 2021. 9. 12. 22:45
모든 프로그래밍 언어를 배울 때는 대략적인 순서가 있는 것 같다.
맨 처음에 Hello World를 찍고 -> 변수를 배우고 -> 조건문, 반복문을 배운다.
여기에 함수 정도를 얹고 나면 웬만한건 다 할수있다는 느낌이 든다
(정말?)지난번 변수, 상수 글에 이어서 조건문과 반복문 관련 내용을 정리해봤다.
조건문 : If
swift의 조건문은 아래와 같이 사용한다. if, else if, else 등을 사용할 수 있다.
if <condition1> { // condition1이 true 일때 실행할 내용 } else if <condition2> { // condition2가 true 일때 실행할 내용 } else { // 어떤것도 해당되지 않을때 실행할 내용 }
개인적으로 if 뒤에 괄호를 따로 쓰지 않는 점이 조금 어색하다(참고로 괄호를 써도 코드는 돌아갑니다).
아래처럼 &&으로 조건을 결합하는 것도 가능하다. 물론 || 사용도 가능하다.
let hungry = true let hasMoney = true if hungry && hasMoney { print("고기를 먹는다") } else if hungry && !hasMoney { print("과자를 먹는다") } else { print("아무것도 먹지 않는다") }
조건문 : Switch
if문과 함께 붙어다니는 switch문도 사용 가능하다. 마찬가지로 조건 뒤를 {} 로 감싸서 코드를 적으면 된다.
case에 따라 코드가 실행되며, case에 없는 값이라면 default의 내용이 실행된다.
let trafficLight = "노랑" switch trafficLight { case "초록": print("움직인다") case "빨강", "노랑": print("멈춘다") default: print("고장난 신호등") }
위 코드에서 "빨강", "노랑"을 콤마로 같이 묶어준걸 볼 수 있다.
사실 자바스크립트를 쓸 때 아래처럼 쓴 적이 있어서 한번 고쳐서 적어봤는데 바로 에러가 발생했다.
Swift는 조건(case)에 따라 실행할 내용이 최소 한 줄 이상 있어야 한다고 한다. 주의해야겠다.
공식문서를 보다보니 Switch를 상당히 다양하게 활용할 수 있던데 내가 듣는 udacity 강의엔 다루지 않는 내용이라 일단 생략했다 ㅜㅜ
반복문 : For - In
반복하면 빠지지 않는 for 문이다. range를 ...이나 ..<을 통해 지정해줄 수 있다.
...은 시작부터 끝을 포함하는 범위고, ..<는 시작부터 끝 미만까지의 범위다.
for i in 1...4 { print(i) } // 1 // 2 // 3 // 4 for i in 1..<4 { print(i) } // 1 // 2 // 3
for - in을 통해 리스트를 순회하거나 String을 순회하는것도 가능하다.
let weather = ["봄","여름","가을","겨울"] for w in weather { print("\(w)이었다") } // 봄이었다 // 여름이었다 // 가을이었다 // 겨울이었다
dictionary 를 순회할 경우 (key, value) tuple을 반환한다. 다만 dictionary에 들어간 순서대로 실행되지는 않는다.
let scores = ["국어": 80, "영어": 95, "수학": 100] for (subject, score) in scores { print("\(subject)점수는 \(score)점이다") } // 수학점수는 100점이다 // 국어점수는 80점이다 // 영어점수는 95점이다
연속적인 숫자가 아닌, 특정 간격을 가진 반복문을 실행하고 싶다면 stride를 사용한다
stride(from, to, by) : from..<to 까지 by 간격으로 실행
stride(from, through, by) : from...to 까지 by 간격으로 실행
for money in stride(from:500, through:1500, by:500) { print("궁금하면 \(money)원") } // 궁금하면 500원 // 궁금하면 1000원 // 궁금하면 1500원
위는 through 를 써서 1500원까지 실행된다 (아무거나 생각나는대로 예시를 작성하다보니.. 아재같다 ㅋㅋㅋㅋㅋㅋ)
반복문 : While
for문의 친구(?) while문이다. 조건을 만족하는 동안 계속 반복되고, 조건을 만족하지 못하면 루프에서 빠져나온다.
var i = 1 while i < 5 { print(i) i += 1 } // 1 // 2 // 3 // 4
while true ~ break 또한 사용 가능하다. 결과는 위 코드와 똑같다. (break, continue 는 다른 언어에서 사용하는 방식과 같다)
var i = 1 while true { if i == 5 { break } print(i) i += 1 }
while문의 경우, 조건에 맞지 않으면 아예 실행되지 않는다.
한편 repeat - while 문을 사용할 경우 조건 검사를 반복문 실행 이후에 하기 때문에, 조건 만족 여부와 관계없이 최소 한번은 무조건 루프를 돌게 된다. (아래 코드에서 print는 1부터 10까지 나온다. 만약 timer가 10보다 크더라도 한번은 값이 print 된다)
let maxSecond = 10 var timer = 0 repeat { timer += 1 print(timer) } while timer < maxSecond
조건문, 반복문은 언어마다 조금씩 형식이 달라서 쓸때마다 검색해보게 된다.
직접 정리 안하고 매번 다른사람 블로그만 방문했었는데, 이번에 처음으로 정리해봐서 뿌듯하다.
'Swift' 카테고리의 다른 글
[Swift] 변수 상수 선언 (0) 2021.09.12