검색결과 리스트
옵셔널에 해당되는 글 4건
- 2016.05.15 160515 Swift IF문! 조건문에 대해서 :)
- 2016.05.08 160507 Swift Function 이번엔 프로그래밍의 꽃! 함수편!
- 2016.05.07 160507 Swift Optional 스위프트의 꽃 옵셔널! 마지막편!
- 2016.05.07 160506 Swift Optional 스위프트의 꽃! 옵셔널에 대해 알아보자!
안녕하세요~ 에르의 생각발전소입니다 :)
저번 시간에는 for구문과 while구문을 다뤄보았었는데요.
다들 ~ 만족하셨기를 바라며 !
이번 시간에는 조건문에 대해서 알아보도록 하겠습니다.!
// SWIFT 조건문 :)
// 조건값을 입력하여 특정 코드를 실행하도록 분기합니다.
// if / guard / switch 구문으로 조건문을 구별할 수 있습니다.
// if 구문
// if 조건문 {
// 실행 구문
// } 위와같은 형태를 가집니다. 익숙하지요?
var ageline = 19
var customerAge = 16
if customerAge > ageline {
print("미성년자의 클럽 출입은 불가합니다.")
} else { print("환영합니다! 클럽 에르입니다!")
}
// 조건에 의해 결과가 참일 경우 else 앞의 구문이!
// 결과가 거짓일 경우 else 뒤의 구문이!
// 실행된답니다.
// 근데 조금 이상하지않나요?
// 네, 맞습니다. VALUE > VALUE 에서 앞에 값을 뒤에 값과 비교하기 때문에
// 실수로 위와 같이 잘못했다면, 나중의 결과는 참담해지겠죠?
var ageline = 19
var customerAge = 16
if customerAge < ageline {
print("미성년자의 클럽 출입은 불가합니다.")
} else { print("환영합니다! 클럽 에르입니다!")
}
// 이번에는 제대로 작성된 코드입니다.
// 고객나이가 제한나이보다 어리니, 미성년자의 클럽 출입은 불가합니다 라는 멘트가 프린트되고있습니다.
// 보통 조건문을 사용할 떄 조건의 갯수는 복수일 경우가 많습니다.
// 만약 3개이상의 조건이 붙는 조건문일 경우에는 어떻게해야할까요?
// if else if 를 반복적으로 사용하여, 조건문 안의 조건문을 만들어 사용할 수 있습니다.
// 또한 if else if 를 통한 두가지 조건 이상의 조건문도 만들 수 있습니다 :)
var MySubject = "국사"
var score:String
if MySubject == "국어" {
score = " 88점입니다."
} else {
if MySubject == "수학"{
score = "12점입니다."
} else {
if MySubject == "과학" {
score = "54점입니다."
} else {
if MySubject == "국사" {
score = "75점입니다."
} else {
if MySubject == "사회" {
score = "90점입니다."
} else {
score = "과목을 다시 확인하여주세요."
}
}
}
}
}
print("귀하의 \(MySubject) 과목 점수는 \(score) ")
// 허나 위 코드는 그닥 보기좋은 코드는 아닙니다.
// 왜냐하면 조건문에 조건문을 계속 넣게되면, 코드가 지저분해지고 분간하기 어려워집니다.
// 하나의 중괄호 미스로 에러가 야기되는데 이런 문제를 찾으려해도
// 코드 해석에 시간이 걸리니, 그만큼 비효율적이라고 할 수 있겟죠.
// 그래서 대게 위 방법보다는 다른 if else if 방식으로
// 더욱 깔끔한 코딩을 합니다.
// 다음 시간에는 그 방법과 진도를 나가도록 하겠습니다 :)
// 피드백을 받고 있으니, 질문해주세요 :)
2016/04/19 - [프로그래밍발전소 ♫] - 160418 swift 란? 스위프트 언어에 대해서 알아봅시다. let과 var편
2016/04/20 - [프로그래밍발전소 ♫] - 160419 Swift part.2 String과 Numbers에 대해서
2016/04/23 - [프로그래밍발전소 ♫] - 160423 Swift Tuple, Typealias 편 ! :) 튜플과 타입얼라이어스
2016/04/25 - [프로그래밍발전소 ♫] - 160424 collection Array 편 :)
2016/05/05 - [프로그래밍발전소 ♫] - 160505 Swift 구문편! if, for, switch 까지!
2016/05/06 - [프로그래밍발전소 ♫] - 160506 Swift Optional 스위프트의 꽃! 옵셔널에 대해 알아보자!
2016/05/07 - [프로그래밍발전소 ♫] - 160507 Swift Optional 스위프트의 꽃 옵셔널! 마지막편!
2016/05/07 - [프로그래밍발전소 ♫] - 160507 Swift Function 이번엔 프로그래밍의 꽃! 함수편!
2016/05/12 - [프로그래밍발전소 ♫] - 160512 Swift Function 스위프트 함수편!
swift switch구문 편! (2) | 2016.06.01 |
---|---|
Swift programming language Guard구문! :) (0) | 2016.05.27 |
160513 Swift While 구문편 :) (0) | 2016.05.14 |
160512 Swift 단순 구문 , 흐름 제어 구문 for , for ~ in구문 :) (0) | 2016.05.13 |
160512 Swift Function 스위프트 함수편! (0) | 2016.05.12 |
안녕하세요~ 에르의 생각발전소입니다 :)
옵셔널은 잘 끝내셨나요?
이번 시간에는 함수에 대해서 겉만 살짝 다루보도록 하겠습니다.
저번에 이용한 코드를 그대로 가져와서,
응용해보도록하겠습니다 :)
let Movie : String = "Death Note"
var ratings : [Double]? = nil
var officialUrl = "www.deathnote.com"
ratings = [4.5, 3.5, 2.5, 1.5, 4.5, 0.5]
// ratings에 값을 초기화시켜보도록하겠습니다!
func funcratings (history:[Double]) -> (average:Double , min:Double, max: Double) {
// history:[Double] 더블타입으로 평균, 최소값, 최대값을 지정해준다.
var sum = 0.0, min = history[0], max = history[0]
// sum 은 모든 값을 더할 것이고~
// min과 max는 히스토리의 첫번째 값을 가진다!
for value in history {
// for~ in문을 돌려봅시다!
if min > value { min = value }
// 만약 최소값이 값보다 크다면, 그 값이 최소값을 가진다.
if max < value { max = value }
// 최대값이 값보다 작으면 그 값이 최대값이 된다.
sum += value
// sum에는 모든 값들을 더한다.
}
let average = sum/Double(history.count)
// 평균은 sum에 history의 카운트 갯수로 나누어서 평균값을 구한다.
return (average, min, max)
// 그리고 return값으로 평균 최소 최대값을 반환한다!
}
var movieInfo: String = "\(Movie)"
if let conratings = ratings {
let history = funcratings(conratings)
// 이제 history는 funcratings이며! funcratings는 conratings이다!
movieInfo += "has \(conratings.count) ratings. \r\n average is \(history.average) from \(history.min) to \(history.max) ."
// \r\n는 한줄띄우기! 백슬레쉬에요 저번에 정슬레쉬로 설명드렸는데,
// 사실은 백슬래쉬였답니다..어찌됬건
}
movieInfo += "\r\n let's contact our page : \(officialUrl)"
print("\(movieInfo)")
Death Notehas 6 ratings.
average is 2.83333333333333 from 0.5 to 4.5 .
let's contact our page : www.deathnote.com
//라는 최종적인 결과를 표출하였습니다.
// 함수는 일종의 도구이며,
// 본인 스스로에게 적합한 도구를 만들어, 적절한 시기에 사용하시면 됩니다!
// 함수를 얼마나 잘 만드냐, 적절하게 잘 설계를 하냐는 다~ 개발자의 재량이며, 가치입니다.
// 고로, 열심히 공부하여, 우리의 가치를 증진시켜봅시다 :)))
160512 Swift 단순 구문 , 흐름 제어 구문 for , for ~ in구문 :) (0) | 2016.05.13 |
---|---|
160512 Swift Function 스위프트 함수편! (0) | 2016.05.12 |
160507 Swift Optional 스위프트의 꽃 옵셔널! 마지막편! (0) | 2016.05.07 |
160506 Swift Optional 스위프트의 꽃! 옵셔널에 대해 알아보자! (0) | 2016.05.07 |
160505 Swift 구문편! if, for, switch 까지! (0) | 2016.05.06 |
안녕하세요~ 에르의 생각발전소입니다 :)
이번 시간에는 옵셔널의 마지막편입니다!
Force Unwrapping
Optional Binding
Implicitly Unwrapped Optional
위 세가지 중 옵셔널과 임플릭시티 언렙 옵셔널에 대해서 알아보겠습니다:)
지난번 다뤄보았던 코드들 그대로 가지고 계신가요?!
시작해보죠.
if let conratings = ratings {
// if let conratings = ratings로 새로운 상수 선언 후 대입!
movieInfo += "has \(conratings.count) ratings."
//ratings.count 또한 conratings.count로 변경!
}
if let conofficial = officialUrl { // 홈페이지주소가 닐 값이 아니라면,
movieInfo += "/r/n let's contact our page : \(conofficial)"
// 무비인포에 위의 문장을 더한다. /r/n은 한줄 띄움임.
}
print("\(movieInfo)")
// 포스언렙핑 말고 다른 방법도 있음!
// Optional binding : if var , if let 으로 옵셔널사용을 최소화하기 위해 변수나 상수를 새로 만드는 것임.
var officialUrl : String! = nil
// 처음에는 nil이지만 나중에 어떻게든 무조건 값을 받을 경우는 implicity unwrapped optional방식을 사용하여,
타입뒤에 !를 붙임! 그렇게 되면?!
officialUrl = "www.deathnote.com"
// if let conofficial = officialUrl { // 홈페이지주소가 닐 값이 아니라면,
// movieInfo += "/r/n let's contact our page : \(conofficial)"
// 무비인포에 위의 문장을 더한다. /r/n은 한줄 띄움임.
// }
movieInfo += "/r/n let's contact our page : \(officialUrl)"
// 위에 if let conofficial 필요없이 바로 옵셔널이 아닌것 마냥 쉽게 사용이 가능함!
print("\(movieInfo)")
// 포스언렙핑 말고 다른 방법도 있음!
// Optional binding : if var , if let 으로 옵셔널사용을 최소화하기 위해 변수나 상수를 새로 만드는 것임.
// 마지막으로 Implicitly Unwarrped Optional도 있음!
// 옵셔널 선언 후 나중에는 반드시 값을 가지게 될 값에게 위 방법을 사용할 수 있음!
// 보다 효과적임.
// 옵셔널은 스위프트에서 매우 중요한 부분이니, 다시 한번 제대로 되새겨주세요!
160512 Swift Function 스위프트 함수편! (0) | 2016.05.12 |
---|---|
160507 Swift Function 이번엔 프로그래밍의 꽃! 함수편! (0) | 2016.05.08 |
160506 Swift Optional 스위프트의 꽃! 옵셔널에 대해 알아보자! (0) | 2016.05.07 |
160505 Swift 구문편! if, for, switch 까지! (0) | 2016.05.06 |
160505 Swift Collection: Dictionary 와 Set (0) | 2016.05.06 |
안녕하세요~ 에르의 생각발전소입니다! :)
이번 시간에는 스위프트의 꽃!
옵셔널을 빼고 스위프트를 안다고 절대 할 수 없죠!?
드디어 이번 시간에는 Optional 에 대해서 알아보겠습니다!
시작해볼게요 :)
// 스위프트의 꽃인, optional
// Nil 값이 없는 무의 상태를 의미함.
// 특히 0과 NIL의 개념은 다름. 0은 정수가 있다는 얘기임.
// Optuonal : 프로그래밍의 안전벨트, 실행 중 Nil이 돠어 프로그램 크래쉬를 일으킬 수 있는 변수를 특별히 관리한다는 것임
// 스위프트의 장점이자, 단점인데 결론적으론 좋은 장점임!
// 옵셔널을 만드는 방법은 TYPE뒤에 ?를 붙이면 됨.
// EX: NAME:TYPE? = VALUE
let Movie : String = "Death Note"
// 데스노트라는 값은 가진 스트링타입의 무비네임을 가짐 변수임.
var ratings : [Double]? = nil
// 평점을 더블타입으로 nil값을 주어서 선언함.
var ratings : [Double]? = nil
// 평점을 더블타입으로 nil값을 주어서 선언함.
// 허나 포스 언렙핑을 사용했음에도 불구하고 코드가 확실히 죽어버림.
왜냐하면, 값이 결국은 없기 때문임.
고로 이 방법을 사용하면, 빠른 길을 머어어어어얼리 돌아가야하는 결과가 나옴. :(
officialUrl = "www.deathnote.com"
// 일단 홈페이지 주소를 부여함.
var movieInfo: String = "\(Movie)"
// 무비지인포라는 스트링타입의 변수를 선언하고 무비인포는 무비라고 초기화함.
// ratings != nil 에서 ratings는 nil이 아니다! 라는 연산자입니다! (!= NOT)
// 그래서 ratings는 nil값이 아니라고 선언을 했으니!! 문제가 없음!
// /r/n는 한줄 띄움임! 앞으로 자주 사용하실거에요 :)
// officialUrl != nil 이 nil값이 아니라면,
movieInfo에 위 문장을 더한다~!
// 앞에 Optional이 보기 싫고 불완전하게 코딩이 되었으니!
// 짜잔!. officialUrl에 ! 를 붙여서 포스 언렙핑을 시켜서
// 완변히 만들어줍니다 :)
다음 시간에는 ~ ? Optional binding 과 Implicity Wrapped Optional 에 대해서
다루어보도록하겠습니다!
2016/05/05 - [프로그래밍발전소 ♫] - 160505 Swift 구문편! if, for, switch 까지!
2016/05/05 - [프로그래밍발전소 ♫] - 160505 Swift Collection: Dictionary 와 Set
2016/04/25 - [프로그래밍발전소 ♫] - 160424 collection Array 편 :)
2016/04/23 - [프로그래밍발전소 ♫] - 160423 Swift Tuple, Typealias 편 ! :) 튜플과 타입얼라이어스
2016/04/20 - [프로그래밍발전소 ♫] - 160419 Swift part.2 String과 Numbers에 대해서
2016/04/19 - [프로그래밍발전소 ♫] - 160418 swift 란? 스위프트 언어에 대해서 알아봅시다. let과 var편
160507 Swift Function 이번엔 프로그래밍의 꽃! 함수편! (0) | 2016.05.08 |
---|---|
160507 Swift Optional 스위프트의 꽃 옵셔널! 마지막편! (0) | 2016.05.07 |
160505 Swift 구문편! if, for, switch 까지! (0) | 2016.05.06 |
160505 Swift Collection: Dictionary 와 Set (0) | 2016.05.06 |
160424 collection Array 편 :) (2) | 2016.04.25 |
RECENT COMMENT