Swift 기본 문법 ⓑ (if, switch, guard, for Loop, while Loop)

krystal·2022년 9월 25일
0

Swift 기초

목록 보기
2/11
post-thumbnail

[출처] The Swift Programming Language The Basics 번역본
The Swift Programming Language The Basics 원본
옵서녈 바인딩등 옵셔널에 관한 내용도 있는데 이는 추후에 추가하도록 한다.

if

C언어와 같이 동일하게 작성하게 된다.

let enteredDoorCode = true
let passedRetinaScan = false

if enteredDoorCode && passedRetinaScan {
  print("Welcome!")
} else {
  print("ACCESS DENIED")
}
// ACCESS DENIED

switch

switch문 또한 다른 언어와 작성하는 것이 동일하다.

switch some value to consider {
case value 1:
respond to value 1
case value 2,
value 3:

respond to value 2 or 3
default:
otherwise, do something else
}

let someCharacter: Character = "z"
switch someCharacter {
case "a":
    print("The first letter of the alphabet")
case "z":
    print("The last letter of the alphabet")
default:
    print("Some other character")
}
// Prints "The last letter of the alphabet"

각 케이스의 본문 에는 실행 가능한 명령문이 하나 이상 포함 되야한다.
첫 번째 사례가 비어 있기 때문에 아래 코드는 오류가 뜨게 된다.

let anotherCharacter: Character = "a"
switch anotherCharacter {
case "a": // Invalid, the case has an empty body
case "A":
    print("The letter A")
default:
    print("Not the letter A")
}
// This will report a compile-time error.

위의 코드와 같은 오류를 해결하기 위해서는 케이스를 묶어야한다.

let anotherCharacter: Character = "a"
switch anotherCharacter {
case "a", "A":
    print("The letter A")
default:
    print("Not the letter A")
}
// Prints "The letter A"

guard

guard 명령문은 하나 이상의 조건이 충족되지 않는 경우 범위 밖으로 프로그램 제어를 전송하는 데 사용된다.
(if문의 하위카테고리 느낌)

guard condition else {
statements // condition이 충족되지않았을 경우(false) 실행됨
}

if문 말고 guard 문을 사용하는 이유는? 🤔
☞ if문과 다르게 코드의 가독성 있다.


for Loop

파이썬의 for문과 동일하게 돌아간다.

let names = ["Anna", "Alex", "Brian", "Jack"]
for name in names {
    print("Hello, \(name)!")
}
// Hello, Anna!
// Hello, Alex!
// Hello, Brian!
// Hello, Jack!

for문에서 key-value 쌍으로도 접근가능하다.
(+ Swift에서는 딕셔너리 타입은 추론불가하다. 타입을 미리 선언하거나, key-value 쌍이 채워진 상태로 선언해주어야한다)

let dic = [:] // 추론불가하므로 오류가 남
let dic : [String:Stirng] = [:] // 타입을 미리 선언
let dic2 = ["Apple" : "red"] // key-value 쌍이 채워진 상태
let dic3 = Dictionary<String, Int>() // 생성자로 생성
let dic4 : Dictionary<String, String> = [:] // 타입 선언
let numberOfLegs = ["spider": 8, "ant": 6, "cat": 4]
for (animalName, legCount) in numberOfLegs {
    print("\(animalName)s have \(legCount) legs")
}
// cats have 4 legs
// ants have 6 legs
// spiders have 8 legs

while Loop

C언어의 while문에서 조건부분의 괄호만 빠졌다고 생각하면 될 것같다.

while condition {
statements
}

var square = 0
var diceRoll = 0
while square < finalSquare {
    diceRoll += 1
    if diceRoll == 7{
    diceRoll = 1 
    }
    square += diceRoll
    if square < board.count {
        square += board[square]
    }
}
print("Game over!")
profile
https://source-coding.tistory.com/

0개의 댓글