[TIL / 24.02.05] 함수의 기초 복습해봅시다 !

2025. 2. 5. 17:21·iOS/Swift

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
'iOS/Swift' 카테고리의 다른 글
  • [TIL / 25.02.10] 헤더를 이용한 테이블뷰를 구성, 셀과 헤더 높이 자동 계산
  • [TIL / 25.02.07] 라이브러리 사용해서 상단 탭바 구현하기 2
  • [TIL / 25.02.06] 라이브러리 사용해서 상단 탭바 구현하기 1
  • [TIL / 25.02.04] Swift의 기본 데이터 타입~반복문까지 복습!
subkyu-ios
subkyu-ios
subkyu-ios 님의 블로그 입니다.
  • subkyu-ios
    subkyu-ios 님의 블로그
    subkyu-ios
  • 전체
    오늘
    어제
    • 분류 전체보기 (56)
      • iOS (38)
        • Swift (38)
      • 내일배움캠프 (7)
      • Git, Github (3)
      • Algorithm (6)
      • 회고 (1)
      • 면접 질문 정리 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    RxSwift
    algorithm
    tabman
    트러블슈팅
    사전캠프
    프로그래머스
    본캠프
    KPT
    UIKit
    회고
    ios
    github
    내일배움캠프
    Swift
    알고리즘
    TableView
    til
    의존성 주입
    stackview
    Wil
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
subkyu-ios
[TIL / 24.02.05] 함수의 기초 복습해봅시다 !
상단으로

티스토리툴바