swift 문법 기초 챕터1 Recap
1. 기본 데이터 타입
기본 데이터 타입 질문
- Q. 기본 데이터 타입 Int 에 대해서 설명해주세요
- A. 정수를 저장하는 데이터 타입
기본 데이터 타입 질문
let testValue = 15
- Q. 위의 testValue는 어떤 데이터 타입일까요?
- A: Int
기본 데이터 타입 질문
- Q. Float 과 Double은 모두 소수점을 저장할수 있는 데이터 타입이다. OX로 답변해주세요
- A : O
기본 데이터 타입 질문
- Q. Bool 데이터에 대해서 설명해주세요.
- A: 참/거짓을 저장하는 데이터 타입
기본 데이터 타입 질문
- Q. 문자열을 저장할 수 있는 데이터타입의 이름은 무엇이었죠!?
- A. String
기본 데이터 타입 질문
아래의 _____에는 어떤 데이터타입이 들어가면 좋을까요?
let price: ______ = 199.95 // A: Float or Double
let name: ______ = "수강생!" // A: String
let isAdult: ______ = false // A: Bool
기본 데이터 타입 질문
- Q. Int와 Float은 둘다 숫자를 표현하는데 동일한 타입인가요?
- A. Int는 정수형, Float은 실수형 숫자를 저장하는 데이터 타입이라 조금 다릅니다.
- Q. 만약 동일하지 않다면 차이점은 무엇인가요?
- A. Int는 정수, Float은 소수점을 포함한 실수
2. 변수와 상수
변수와 상수 질문
- Q. 변수와 상수에 대해서 설명해주세요.
- A. 변수는 값을 할당한 후에도 값이 변할 수 있고 상수는 값을 할당 한 뒤로 값이 변하지 않습니다.
- Q. 변수를 사용하기 위한 키워드는 무엇인가요?
- A. var
- A. var
- Q. 상수를 사용하기 위한 키워드는 무엇인가요?
- A. let
- A. let
- Q. 상수에는 값을 할당하고 다른 값을 할당하면 어떻게 되나요?
- A. let 데이터라 값을 바꿀 수 없다고 컴파일 에러가 나곤 했습니다.
변수와 상수 질문
아래의 한국말을 개발해주세요!
- 1. 변수의 이름은 phone, 타입은 문자열로 선언해주세요.
- 2. phone변수에 "iPhone" 값을 할당해주세요.
- 3. print 함수를 사용하여 phone 변수의 값을 출력해주세요.
var phone: String
phone = "iPhone"
print(phone)
변수와 상수 질문
아래의 한국말을 개발해주세요. 그리고 아래에 있는 질문에 답변해주세요.
- 상수의 이름은 age이고 값은 15를 할당해주세요.
let age = 15
- Q. 위의 코드에서 age의 데이터타입은 무엇일까요!?
- A. Int
- Q. age에 데이터타입을 명시하지 않았는데 위의 데이터타입이 되는 이유는 무엇인가요?
- A. 숫자 15를 입력하면 swift 컴파일러가 데이터 타입 추론을 지원하기 때문에 명시하지 않아도 자동으로 Int 타입으로 처리합니다.
변수와 상수 질문
아래의 한국말을 코드로 개발해주세요!
- 상수의 이름은 width이고, 값은 200을 할당해주세요.
- 변수의 이름은 length이고, 값은 300을 할당해주세요.
- 두 값을 더한 결과를 출력해주세요.
let width = 200
var length = 300
print(width + length)
변수와 상수 질문
아래의 한국말을 코드로 개발해주세요!
- 변수의 이름은 temperature이고, 타입은 Double로 선언해주세요.
- temperature에 36.5 값을 할당해주세요.
- print 함수를 사용하여 "현재 온도는 36.5도 입니다"라는 문장을 출력해주세요.
- 이때 36.5는 temperature 변수의 값을 사용해주세요.
var temperature: Double
temperature = 36.5
print("현재 온도는 \(temperature)도 입니다.")
변수와 상수 질문
아래의 코드를 한글로 번역해주세요.
var name: String = "!!" // 번역 : name이라는 이름의 문자열 타입 변수에 !! 라는 문구를 저장합니다.
print(name) // 번역 : name에 저장된 내용을 출력합니다.
print("Hello World") // 번역 : Hello World 라는 내용을 출력합니다.
let height: Float // 번역 : Float 타입의 상수 height를 선언했습니다.
height = 123.0 // 번역 : 상수 height에 123.0이라는 값을 할당했습니다.
변수와 상수 질문
아래의 한국말을 코드로 개발해주세요!
- 상수 isComplete를 Bool 타입으로 선언하고 true 값을 할당해주세요.
- print 함수를 사용하여 isComplete 값을 출력해주세요.
let isComplete: Bool = true
print(isComplete)
변수와 상수 질문
- Q. 아래의 코드는 잘 작동 할까요?
let testValue = 10
testValue = 5
print(testValue)
- A. testValue를 상수로 선언하고 초기 값을 10으로 할당한 뒤에 다시 5를 할당하려고 하니 에러가 발생할 것입니다.
3. 연산자
연산자 질문 1.
OX 퀴즈
- Q. 대입연산자(=)는 왼쪽에 있는 값을 오른쪽에 대입(할당)하는 역할을 한다.
- A. X, 반대로 오른쪽에 있는 값을 왼쪽에 대입합니다.
연산자 질문 2.
아래의 한국말을 코드로 작성해주세요.
- 변수 count를 선언하고 값을 10 대입하세요.
- count의 값을 5로 변경하세요.
var count = 10
count = 5
연산자 질문 3.
아래의 코드를 보고 질문에 답변해주세요.
var test3 = 10
test3 -= 5
- Q. print(test3)의 출력값은 무엇일까요?
- A. 5
연산자 질문 4.
아래의 한국말을 코드로 개발해주세요.
- 두개의 변수 a,b를 선언하여 10, 20 값을 대입해주세요.
- 변수 a,b를 더한값을 출력해보세요.
- 변수 a와 b의 나머지 연산 결과를 출력해주세요.
- 아래에 개발해주세요
var a = 10
var b = 20
print(a + b)
print(a % b)
연산자 질문 5.
아래의 코드를 보고 질문에 답변해주세요.
var test5A = true
var test5B = false
- Q. print(test5A == test5B) 의 출력값은 무엇일까요?
- A. false
- Q. test5A의 타입은 String이다? O/X로 답변해주세요!
- A. X
- Q. print(test5A || test5B) 의 출력값은 무엇일까요?
- A. true
- Q. print(test5B && test5A) 의 출력값은 무엇일까요?
- A. false
- Q. print(!test5B) 의 출력값은 무엇일까요?
- A. true
- Q. print(!test5A || test5B)의 출력값은 무엇일까요?
- A. false
연산자 질문 6.
아래의 한국말을 코드로 개발해주세요!
- 변수 x에 10을, 변수 y에 20을 대입하세요.
- x와 y가 같은지 비교하여 결과를 출력하세요.
- x가 y보다 작은지 비교하여 결과를 출력하세요.
var x = 10
var y = 20
print(x == y)
print(x < y)
연산자 질문 7.
아래의 코드를 보고 질문에 답변해주세요.
1...5
- Q. 해당 범위 연산자에 포함되는 숫자는 무엇이 있을까요?
- A. 1, 2, 3, 4, 5
연산자 질문 8.
아래의 코드를 보고 질문에 답변해주세요.
10..<11
- Q. 해당 범위 연산자에 포함되는 숫자는 무엇이 있을까요?
- A. 10
4. 조건문
조건문 질문
Q. 조건문을 개발할 때 사용하는 키워드를 선택해주세요
- for
- if
- switch
- func
- let
- Array
- guard
- closure
A. if, switch, guard
조건문 질문
아래의 코드에서 번역 : 뒤의 부분을 채워주세요
let score = 85 // 번역 : 상수 score에 숫자 85를 할당했습니다.
if score >= 90 { // 번역 : 만약 score의 값이 90 이상이라면
print("A") // 번역 : A 를 출력합니다.
} else if score >= 80 { // 번역 : 그리고 만약 score의 값이 90 이상이 아니면서, 80 이상이라면 B를 출력합니다.
print("B")
} else { // 번역 : score가 90이상도, 90~80의 값도 아니라면 C를 출력합니다
print("C")
}
- Q. 위 코드에서 출력되는 값은 무엇일까요?
- A. score가 85이기 때문에 else if 부분이 동작해 B가 출력됩니다.
조건문 질문
아래의 한국말을 코드로 작성해주세요.
- 변수 dayOfWeek에 "Friday"를 대입하세요.
- switch 문을 사용하여 dayOfWeek이 "Monday"일 때는 "월요일", "Friday"일 때는 "금요일"을 출력하세요.
- 그 외의 경우에는 "평일입니다"를 출력하세요.
var dayOfWeek = "Friday"
switch dayOfWeek {
case "Monday":
print("월요일")
case "Friday":
print("금요일")
default: print("평일입니다")
}
조건문 질문
아래의 한국말을 코드로 작성해주세요.
- if 조건문를 사용해서 개발해주세요.
- 1. 변수 age를 선언하고, 값으로 20을 대입하세요.
- 2. 만약 age가 18보다 크거나 같으면 "성인입니다"를 출력하세요.
- 3. 그렇지 않으면 "미성년자입니다"를 출력하세요.
var Age = 20
if Age >= 18 {
print("성인입니다")
} else {
print("미성년자 입니다")
}
조건문 질문
아래의 한국말을 코드로 작성해주세요.
- guard를 사용해보세요.
- 1. 함수 checkAdult를 작성하여, Int타입의 age를 파라미터로 받으며 반환타입은 없습니다.
- 2. age가 18보다 작으면 "성인이 아닙니다"를 출력하고 함수에서 빠져나오세요.
- 3. 그렇지 않으면 "성인입니다"를 출력하세요.
func checkAdult(age: Int) {
// guard age < 18 else {
// print("성인입니다")
// }
// print("성인이 아닙니다.")
guard age > 18 else {
print("성인이 아닙니다")
return
}
print("성인입니다.")
}
checkAdult(age: 18)
5. 반복문
반복문 질문
OX 퀴즈
- Q. for 는 반복을 할 때 사용한다?
- A. O
- Q. while 반복문은 조건이 참일 동안 계속 반복해서 실행된다?
- A. O
반복문 질문
아래의 코드를 보고 질문에 답변해주세요.
for i in 1...5 {
print(i)
}
- Q. 위의 코드의 출력 결과는 무엇일까요?
- A. 1 \n 2 \n 3 \n 4 \n 5
반복문 질문
아래의 코드를 보고 질문에 답변해주세요.
var counter = 0
while counter < 3 {
print(counter)
counter += 1
}
- Q. 위 코드의 출력 결과는 무엇일까요?
- A. 0 \n 1 \n 2
반복문 질문
아래의 한국말을 코드로 작성해주세요.
- 1. 변수 total에 0을 선언하세요.
- 2. for 문을 사용하여 1부터 10까지의 숫자를 더해서 total에 저장하세요.
- 3. 마지막에 total 값을 출력하세요.
var total = 0
for i in 1...10 {
total += i
}
print(total)
반복문 질문
아래의 한국말을 코드로 작성해주세요.
- 1. 변수 count에 5를 선언하세요.
- 2. while 문을 사용하여 count가 0이 될 때까지 count를 1씩 줄이면서 출력하세요.
var count = 5
while count > 0 {
print(count)
count -= 1
}
반복문 질문
아래의 코드를 보고 질문에 답변해주세요.
번역 : 뒤에를 채워주세요
for i in 3...10 { // 번역 : i의 값을 3부터 10까지 차례로 대입하며 아래 코드를 반복한다.
if i == 5 { // 번역 : i의 값이 5일 때
break // 번역 : 반복문을 빠져나간다
}
print(i)
}
- Q. 위의 코드의 출력되는 값은 무엇인가요?
- A. 3 \n 4
반복문 질문
OX 퀴즈
- Q. break는 반복문을 중간에 종료시키는 역할을 합니다.
- A. O
반복문 질문
아래의 코드를 보고 질문에 답변해주세요
for i in 1...10 {
if i % 2 == 0 {
print(i)
}
if i > 8 {
break
}
}
- Q. 위 코드에서 출력되는 값은 무엇인가요?
- A. 2 \n 4 \n 6 \n 8
반복문 질문
아래의 한국말을 코드로 작성해주세요.
- 1. while 문을 사용하여 1부터 100까지의 숫자 중 5로 나누어떨어지는 숫자만 출력하세요.
var count = 1
while count <= 100 {
if count % 5 == 0 {
print("\(count)", terminator: " ")
}
count += 1
}
6. 함수
함수 질문
OX 퀴즈
- Q. 함수를 구현할 때 필요한것은 함수의 이름과 파라미터 타입 2개이다!?
- A. X 이름, 파라미터, 반환값, 구현부
- Q. 함수는 하나 이상의 값을 무조건 반환해야 한다!?
- A. X
- Q. 함수를 정의할 때 파라미터가 없다면 괄호 ()를 생략해도 된다!?
- A. X
- Q. 함수를 정의할 때 반환하는 타입이 없다면 반환타입을 생략해도 된다!?
- A. O
함수 질문
아래의 코드를 보고 질문에 답변해주세요
func sayHello() {
print("Hello, World!")
}
- Q. sayHello 함수에 파라미터는 몇개인가요?
- A. 0개
- Q. 해당 함수를 호출하면 어떤 값이 출력되나요?
- A. Hello, World!
- Q. sayHello 함수를 호출하는 코드를 작성해주세요.
- A. sayHello()
함수 질문
아래의 코드를 보고 질문에 답변해주세요
func add(a: Int, b: Int) -> Int {
return a + b
}
- Q. 해당 함수의 이름은 무엇인가요?
- A. add
- Q. 해당 함수의 파라미터는 몇개이고 어떤 데이터타입인가요?
- A. Int 타입의 a,b 2개
- Q. 해당 함수의 반환타입은 있나요?
- A. Int
- Q. add 함수에 3,4 값을 넣어서 사용한 뒤 result 상수에 할당하는 코드를 작성해주세요.
- A. let result = add(a: 3, b: 4)
함수 질문
아래의 한국말을 코드로 작성해주세요.
- 1. 문자열을 인자로 받아 해당 문자열을 출력하는 printMessage 함수를 작성하세요.
- 2. 함수 안에서 print 함수를 사용하여 파라미터로 받는 값을 출력하세요.
func printMessage(message: String) {
print(message)
}
printMessage(message: "안녕하세요!")
함수 질문
아래의 한국말을 코드로 작성해주세요.
- 1. 두 개의 정수를 입력받아, 그 값이 같으면 true를 반환하고 다르면 false를 반환하는 함수를 작성하세요.
- 2. 함수의 이름은 isEqual로 지정하세요.
func isEqual(first: Int, second: Int) -> Bool {
// if first == second {
// return true
// } else {
// return false
// }
return first == second
}
print(isEqual(first: 1, second: 1))
7. 고급 데이터 타입
고급 데이터 타입 질문
OX 퀴즈
- Q. Array는 순서를 보장한다!?
- A. O
- Q. Array의 index는 1부터 시작해서 2,3,4 형식으로 올라간다?
- A. X 0부터 시작합니다
고급 데이터 타입 질문
아래의 코드를 보고 질문에 답변해주세요
번역 : 뒤에를 채워주세요.
var numbers = [1, 2, 3, 4, 5] // 번역 : numbers라는 변수에 배열 [1, 2, 3, 4, 5] 를 할당했습니다.
numbers.append(6) // 번역 : numbers 배열의 마지막에 6이라는 값을 추가했습니다.
print(numbers)
- Q. numbers의 타입은 Array, Set 중 무엇인가요?
- A. Array 입니다
- Q. print(numbers)의 결과값은 무엇인가요?
- A. [1, 2, 3, 4, 5, 6] 입니다
- Q. numbers의 값 1을 삭제하는 코드를 아래에 작성해주세요.
- A. numbers.remove(at: 0)
고급 데이터 타입 질문
아래의 코드를 보고 질문에 답변해주세요.
변역 : 뒤에를 채워주세요.
var emptyArray = [String]() // 번역 : 변수 emptyArray를 선언해 String 타입의 값을 넣을 빈 배열을 할당 했습니다.
emptyArray.append("Hello") // 번역 : emptyArray에 Hello 라는 값을 추가했습니다.
emptyArray.append("World")
print(emptyArray.count)
- Q. emptyArray.count는 어떤값이 출력될까요?
- A. 2
고급 데이터 타입 질문
아래의 한국말을 코드로 작성해주세요.
- 1. 변수 array에 Array에 1, 2, 3, 4, 5를 추가하세요.
- 2. 각 요소에 2를 곱한 결과를 새로운 배열로 반환하는 코드를 작성하세요.
var array = [1, 2, 3, 4, 5]
var array2: [Int] = []
for arr in array {
array2.append(arr * 2)
}
print(array2)
고급 데이터 타입 질문
아래의 코드를 보고 질문에 답변해주세요.
var testArray = [Int]()
testArray = [1, 2, 3]
testArray.append(1)
testArray.insert(1, at: 1)
- Q. testArray[0] 의 값은 무엇인가요?
- A. 1
- Q. testArray에 값 1은 몇개가 저장되어 있나요?
- A. 3개
- Q. testArray에 어떤 값이 저장되어 있나요? [] <- 채워주세요!
- A. [1, 1, 2, 3, 1]
고급 데이터 타입 질문
아래의 한국말을 코드로 작성해주세요.
- 1. 문자열 Array를 생성하여 "Dog", "Cat", "Bird"를 추가하세요.
- 2. 각 요소를 반복문으로 순회하며 출력하세요.
- Array의 이름은 자유롭게 만드세요
var Array: [String] = ["Dog", "Cat", "Bird"]
for arr in Array {
print(arr)
}