728x90 Swift15 Swift 팩토리얼 계산 함수 만들기 (재귀함수) 팩토리얼이란양의 정수 n에 대해, 1부터 n까지의 모든 정수를 곱한 값을 말한다. (수학에선 보통 !로 표현한다)n! = n x (n - 1) x (n - 2) x · · · x 13! = 3 x 2 x 1 = 6팩토리얼 계산 함수func factorial(_ n: Int) -> Int { var result = 1 for i in 1...n { result *= i } return result} 반복문을 사용한 팩토리얼 계산 함수func factorial(_ n: Int) -> Int { if n 재귀함수 방식을 사용한 팩토리얼 계산 함수 예시) factorial 함수에 3을 넣으면factorial(3) = 3 * factorial(2)factorial(2) .. 2024. 11. 1. Swift 입력을 반복해서 받는 방법 특정 조건을 만족할 때까지 입력을 반복적으로 받아야 하는 상황에서는 while 문을 활용하면 유용하다.아래 코드는 0을 입력할 때까지 계속해서 숫자를 입력받는 예제이다. while true { let num = Int(readLine()!)! if num == 0 { break }else{ print("숫자 : \(num)") }} 2024. 10. 20. Swift 기초 다지기 - 프로토콜과 익스텐션 프로토콜특정 기능이나 속성을 미리 정의하는 일종의 약속클래스, 구조체, 열거형이 프로토콜을 채택해 요구사항대로 구현할 수 있다. protocol Introduce { var name: String { get set } // { get set } 읽기/쓰기 가능한 프로퍼티 func greet()}// 프로토콜 Introduce를 채택한 클래스 Personclass Person: Introduce { var name: String init(name: String) { self.name = name } func greet() { print("안녕하세요 저는 \(name)입니다.") }}let person = Person(name: ".. 2024. 10. 8. Swift 기초 다지기 - 옵셔널 (Optional) 옵셔널 (Optional)값이 존재할 수도 있고, 존재하지 않을 수도 있음을 나타내는 타입 var optionalNumber: Int? = 1// 옵셔널은 nil을 가질 수 있음optionalNumber = nil 옵셔널은 ? 를 사용해 선언optionalNumber 변수는 Int 타입의 값이 있을 수도 있고 값이 없을 수도 있다, 없음은 nil로 표현한다.옵셔널 바인딩옵셔널은 값이 없을 수 있기 때문에 항상 안전하게 확인해야한다. if - let 바인딩var name: String? = "철수"if let unwrappedName = name { print("이름은 \(unwrappedName)입니다.") // 이름은 철수입니다.}else{ print("이름이 없습니다.")} 옵셔널의 값이 .. 2024. 10. 8. Swift 기초 다지기 - 구조체 (Struct) 그리고 클래스와의 차이점 구조체 (Struct)연관된 데이터(프로퍼티)와 기능(메서드)을 하나의 구조로 묶어 관리할 수 있는 값 타입 struct Person { //프로퍼티 var name: String var age: Int // 메서드 func introduce(){ print("안녕하세요, 제 이름은 \(name) 이고, \(age)살 입니다.") }}// 인스턴스 생성 (철수 17세 라는 인스턴스)let person1 = Person(name: "철수", age: 17)person1.introduce() // 안녕하세요, 제 이름은 철수 이고, 17살 입니다. struct 키워드로 선언, 기본값을 지정 안 해도 됨프로퍼티 - 구조체 내에서 정의된 변수나 상수메서.. 2024. 10. 7. Swift 기초 다지기 - 클래스 (Class) 클래스 (Class)연관된 데이터(프로퍼티)와 기능(메서드)을 하나의 구조로 묶어 관리할 수 있는 참조 타입 class Person { //프로퍼티 var name: String var age: Int // 초기화 init init(name: String, age: Int) { self.name = name self.age = age } // 메서드 func introduce(){ print("안녕하세요, 제 이름은 \(name) 이고, \(age)살 입니다.") }}// 인스턴스 생성 (철수 17세 라는 인스턴스)let person1 = Person(name: "철수", age: 17)person.. 2024. 10. 7. 이전 1 2 3 다음 728x90