1. 함수
1.1 함수의 선언 방법
Swift에서 함수는 특정 작업을 수행하는 코드 블록이며, 아래는 일반적인 함수 선언 형태이다.
func 함수이름(매개변수이름: 타입) -> 반환타입 {
// 실행할 코드
return 결과값
}
- func 키워드를 사용하여 함수를 선언.
- 매개변수(입력값)를 받을 수 있으며, 여러 개의 매개변수를 지정할 수도 있습니다.
- 함수는 특정 작업을 수행한 후, 결과를 반환할 수도 있습니다.
- 매개변수가 없는 함수
매개변수를 받지 않고, 호출하면 항상 같은 결과를 출력하는 함수.
func sayHello() {
print("안녕하세요!")
}
sayHello() // "안녕하세요!" 출력
- 매개변수가 있는 함수
함수를 호출할 때 특정 값을 전달하여 다양한 결과를 출력할 수 있다.
func greet(name: String) {
print("안녕하세요, \(name)님!")
}
greet(name: "Alice")
greet(name: "송눈섭")
ㄴ name이라는 매개변수를 받아서 호출할 때 전달한 값에 따라 다른 결과가 출력된다.
- 반환값이 있는 함수
함수를 호출하면 결과를 반환하는 함수이다.
func add(a: Int, b: Int) -> Int {
return a + b
}
let sum = add(a: 5, b: 3)
print(sum)
ㄴ a와 b를 더한 결과를 반환(return)하며, 호출한 곳에서 결과값을 사용할 수 있다.
1.1.1 응용
- 과제 1: 기본적인 함수 선언
func example() {
print("Hello, Swift!")
}
example()
- 과제 2: 매개변수를 받는 함수 만들기
func greet(name: String) -> Void {
print("안녕하세요, \(name)님!")
}
greet(name: "송눈섭")
1.2 함수의 사용 방법
🌟 함수 사용의 장점
- 재사용 가능: 한 번 작성한 함수를 여러 번 호출할 수 있습니다.
- 가독성 향상: 코드의 목적을 명확히 설명할 수 있습니다.
- 유지보수 용이: 특정 기능을 수정할 때, 함수를 수정하면 전체 코드에서 반영됩니다.
결국 코드 작성을 하면서 재사용성이 굉장히 중요하다 !!
- 반환값이 있는 함수
- 함수가 특정 연산을 수행한 후, 결과를 반환하는 형태입니다.
func multiply(a: Int, b: Int) -> Int {
return a * b
}
let result = multiply(a: 5, b: 3)
print(result) // 15 출력
- a와 b를 곱한 후 결과값을 반환(return)합니다.
- 여러 개의 매개변수를 받는 함수
- 두 개 이상의 값을 입력받아 다양한 결과를 출력할 수 있습니다.
func introduce(name: String, age: Int) {
print("제 이름은 \(name)이고, 나이는 \(age)살입니다.")
}
introduce(name: "Kyu", age: 27)
1.2.1 응용
- 두 수를 더하는 함수 만들기
func addNumbers(num1: Int, num2: Int) -> Int {
return num1 + num2
}
print(addNumbers(num1: 10, num2: 12))
- 평균 계산 함수 만들기
func calculateAverage(score1: Int, score2: Int, score3: Int) -> Float {
let sum = score1 + score2 + score3
return Float(sum) / 3
}
print(calculateAverage(score1: 21, score2: 20, score3: 18))
- 도전 과제: 구구단 출력 함수 만들기
func printMultiplicationTable(number: Int) {
for i in 1...10 {
print("\(number) * \(i) = \(number * i)")
}
}
printMultiplicationTable(number: 2)
3. 간단한 가위바위보 게임 만들기
import Foundation
var isPlaying = true
func getComputerChoice() -> String {
let choices = ["가위", "바위", "보"]
return choices.randomElement()!
}
func determineWinner(userChoice: String, computerChoice: String) -> String {
if userChoice == computerChoice {
return "무승부"
} else if (userChoice == "가위" && computerChoice == "보") ||
(userChoice == "바위" && computerChoice == "가위") ||
(userChoice == "보" && computerChoice == "바위") {
return "이겼습니다~!"
} else {
return "졌습니다 ㅠ"
}
}
while isPlaying {
let computerChoice = getComputerChoice()
if let userChoice = readLine()?.trimmingCharacters(in: .whitespaces),
["가위", "바위", "보", "그만"].contains(userChoice) {
if userChoice == "그만" {
isPlaying = false
print("게임을 종료합니다.")
break
}
else {
print("user: \(userChoice), computer: \(computerChoice)")
print(determineWinner(userChoice: userChoice, computerChoice: computerChoice))
}
} else {
print("잘못된 입력입니다. 다시 입력하세요.")
}
}
아 이거 맥 고질적으로 글자 ㄱㅡㅁㅏㄴ 이렇게 되는 현상,,,, 따로 복붙해오니깐 된다.
readLine을 쓰려면 macOS Command Line Tool을 써야한다는점이 조금 불편하지만 어쨋든...~!
예~전에 C나 C++ 전공 수업으로 쉬운 수준으로 배울때 실습하던 내용을 swift라는 언어로 하게 되니 좀 새롭네요
앱 만드는 데에만 쓰다가 요렇게 쓰니 놓치는 문법 한두개가 보이고 익숙했던 것들도 다시 한번 리마인드하는 좋은 문제였읍니다!
'iOS > Swift' 카테고리의 다른 글
[TIL / 25.02.11] 사이드메뉴를 구현해보자 . . . ! (0) | 2025.02.11 |
---|---|
[TIL / 25.02.10] 헤더를 이용한 테이블뷰를 구성, 셀과 헤더 높이 자동 계산 (4) | 2025.02.10 |
[TIL / 25.02.07] 라이브러리 사용해서 상단 탭바 구현하기 2 (0) | 2025.02.07 |
[TIL / 25.02.06] 라이브러리 사용해서 상단 탭바 구현하기 1 (5) | 2025.02.06 |
[TIL / 25.02.04] Swift의 기본 데이터 타입~반복문까지 복습! (0) | 2025.02.04 |