Q1. 스위프트 기초 개념 퀴즈
Q1. 내 이름을 나타내는 변수를 선언할 때 적절한 이름은 무엇일까요?
- MyName
- my_name
- myName
- my-name
👉 Swift는 변수를 선언할 때 lowerCamelCase(맨 앞문자를 소문자로 작성)를 사용한다
Q2. 콘솔로그를 남기는 간단한 함수를 모두 선택하세요 (다중 선택)
- printf
- dump
- scanf
👉 Swift에서 print 함수는 단순한 문자열을 출력하는 용도로 사용하며, dump 함수는 인스턴스의 자세한 설명까지 출력하는 용도로 사용한다
Q3. 아래 코드의 [빈칸]에 들어가기 알맞은 코드를 골라보세요
let number: Int = 777
let output: String = [빈칸]
print(output) // 행운의 숫자는 777입니다!
- "행운의 숫자는 %d 입니다!"
- "행운의 숫자는 /(number)입니다!"
- "행운의 숫자는 (number)입니다!"
- "행운의 숫자는 \(number)입니다!"
👉 Swift 에서는 프로그램 실행 중에 문자열 내에서 변수 또는 상수의 실질적인 값을 표현하기 위해 \( )을 사용한다
Q4. 차후에 변경이 불가능한 값을 선언하고 싶을 때 아래 코드의 [빈칸]에 들어갈 키워드를 골라보세요
[빈칸] someConstant: Int = 100
- var
- const
- let
- static
👉 Swift 에서는 상수 선언 키워드로 let을 사용한다
Q2. 스위프트 기본 데이터타입 퀴즈
Q1. 다음 중 오류가 발생하는 코드를 모두 선택하세요 (다중 선택)
- let numberOne: Int = 123
- let numberTwo: Double = 123
- let numberThree: UInt = -123
- let character: Character = 'A'
- let string: String = "A"
👉 UInt는 양의 정수 타입을 담기 때문에 음수를 표현할 수 없으며, Character와 String 모두 큰 따옴표 (" ")를 사용해 할당한다
Q2. 다음 중 스위프트에서 없음을 나타내는 키워드를 고르세요
- NULL
- No
- nil
- Any
👉 Swift에서 null과 같이 '없음'을 의미하는 키워드는 nil이다
Q3. 다음 중 오류가 발생하는 코드를 모두 선택하세요 (다중 선택)
- var arrayOne: Array<Int> = [1, 2, 3]
- var arrayTwo: [Int] = Array<Int>()
- var arrayThree: [Int] = [Int]
- var dictionaryOne: Dictionary<String> = Dictionary<String>()
- var dictionary: [String:Int] = ["key":100]
👉 3번처럼 작성하려면 var arrayThree: [Int] = [Int]()으로 작성해야 하며, Dictionary는 key와 value로 구성되어야 하기 때문에 튜플이 필요하다
Q3. 스위프트 함수 퀴즈
Q1. 다음 중 오류가 발생하는 코드를 고르세요
func addOne(left a: Int, right b: Int) -> Int {
return a + b
}
func addTwo(a: Int = 0, b: Int = 0) -> Int {
return a + b
}
- addOne(left: 0, right: 0)
- addOne(a: 10, b: 20)
- addTwo(a: 10, b: 10)
- addTwo(b: 10)
- addTwo()
👉 addOne 함수는 전달인자의 label을 left와 right로 선언해놓았기 때문에 매개변수 이름으로 사용할 경우 오류가 발생한다
Q4. 스위프트 제어구문 퀴즈
Q1. 다음 코드의 실행 결과로 콘솔에 출력될 문자열을 입력해주세요
let someInteger = 50
if someInteger < 100 {
print("100 미만")
} else if someInteger > 0 {
print("0 초과")
} else if someInteger > 30 {
print("30 초과")
} else {
print("50")
}
출력 결과 : 100 미만
👉 else if는 if의 조건이 부합하지 않을 때 실행되기 때문에 첫번째 if 문에서 출력되고나서 나머지 부분은 실행되지 않고 if문이 종료된다
Q2. 다음 코드의 실행 결과로 콘솔에 출력될 문자열로 알맞은 것을 고르세요
let someInteger = 50
{
case 0:
print("zero")
case 1..<100:
print("1~99")
case 50:
print("50")
}
- zero
- 1~99
- 50
- 실행 불가
👉 switch-case 문인데 switch가 없고 case만 있으면... 뭘 보고 case를 판단하나,,,,???
Q3. 다음 코드의 실행 결과로 콘솔에 출력될 내용을 고르세요
let max = 1
var count = 0
repeat {
count = count + 1
print(count)
} while count < max
- 출력내용 없음
- 0
- 1
- 01
👉 repeat 부분 먼저 실행 후 while 문 검사 후, 조건이 충족된다면 repeat 부분 다시 실행! 즉, print(count)로 1만 출력된 후에 종료
Q5. 스위프트 옵셔널 퀴즈
Q1. 다음 중 오류가 발생하는 코드를 고르세요
- let optionalOne: Int! = nil
- let optionalTwo: Int? = optionalOne
- let optionalThree: Int? = nil
- let optionalFour: Int = nil
👉 옵셔널 변수가 아닌 일반 변수에는 nil이 할당될 수 없다
Q2. 다음 중 오류가 발생하는 코드를 모두 고르세요
var optionalA: Int? = nil
var optionalB: Int! = nil
- optionalA = optionalB + 1
- optionalA = 100
- print(optionalB * 3)
- optionalB = optionalA
👉 optionalA는 암시적 추출 옵셔널이 아닌 일반 옵셔널이기 때문에 기존 변수처럼 연산이 가능하다, 또 optionalB는 연산이 가능하지만 nil이 할당되어 있기 때문에 런타임 오류가 발생한다
Q3. 다음 코드의 [빈칸]에 알맞은 코드를 고르세요
let some: Int? = 100
[빈칸] unwrapped: Int = some {
print("추출된 some의 값은 \(unwrapped)입니다")
}
- let
- guard let
- if let
- some let
👉 some이 옵셔널 변수이기 때문에 옵셔널 바인딩을 사용할 때 if-let 방식을 사용한다
'[Non-Updated] iOS > Swift_BoostCourse_Basic' 카테고리의 다른 글
[Swift_BoostCourse_Basic] CH 2_14. 클래스 (0) | 2022.03.08 |
---|---|
[Swift_BoostCourse_Basic] CH 2_13. 구조체 (0) | 2022.03.08 |
[Swift_BoostCourse_Basic] CH 1_12. 옵셔널 추출 (0) | 2022.03.08 |
[Swift_BoostCourse_Basic] CH 1_11. 옵셔널 (0) | 2022.03.03 |
[Swift_BoostCourse_Basic] CH 1_10. 반복문 (0) | 2022.03.02 |