검색결과 리스트
swift language에 해당되는 글 2건
- 2016.07.23 Swift Fall Through구문 편!
- 2016.06.01 swift switch구문 편! 2
// 안녕하세요~ 에르의 생각발전소입니다 :)
// 이번 시간에 다룰 주제는 switch fallthrough 편 입니다.
// 타 언어의 switch구문과 swift의 switch구문을 비교해보면 몇 가지 차이점을 확인하실수 있습니다.
// switch 구문에는 패턴이 일치하는 case블록을 싱행하는 대신, 그다음 case블록으로 실행 흐름을
// 전달하는 문법이 있습니다.
// 이를 Fall Through 라고 합니다.
// 특히 명시해주지않아도 적용이 되기 때문에 암시적인 Fall Through 라 부릅니다! (하지만 스위프트에서 지원하지않습니다.)
/*
switch 비교 대상 {
case 비교패턴1:
실행구문
case 비교패턴2:
실행구문
case 비교패턴3:
실행구문
default :
실행구문
}
저번에 다뤘던 스위치구문의 문법입니다!
비교조건은 본인의 마음에 따라 추가시킬 수 있으며, default는 모든 변수의 case를 담당합니다.
*/
let sampleChar : Character = "a"
switch sampleChar {
case "a":
case "A":
print("글자는 A입니다.")
default :
print("일치하는 글자가 없습니다.")
}
// 유감이게도 에러가 발생했습니다.
// 왜냐하면 스위프트의 스위치구문에서 case 블록은 공백이 되어선 안됩니다.
// 더군다나, 암시적인 fallthrough를 지원하지도 않기때문에 에러가 발생했네요.
// fallthrough는 실행 흐름이 전달된 비교 블록은 패턴 일치 여부에 상관없이 실행 블록을 처리합니다.
// 하지만 스위프트에는 암시적인 fallthrough 대신 명시적인 fallthrough 방법을 채택하였으며, case 블록이 비어 있어선 안됩니다.!
let sampleCharacter : Character = "a"
switch sampleChar {
case "a" :
fallthrough
case"A":
print("the character is A")
default :
print("there is no matched character. ")
}
// 결과는 case "A"가 되었습니다. 원래의 결과는 case "a"가 되어야맞지만,
// case "a" 가 실행되어야할 블록을 fallthrough를 이용하여, 다음 블록인 case "A"로 토스 해준것이죠!
//스위위프트에서 switch 구문은 하나의 ㅇ리치된 비교패턴만 실행하는 특징과 함께, 어떤 경우라도 반드시 하나의 비교패턴은 일치해야한다는 제약이 있습니다.
// 비교 대상이 비교패턴 중 어느것과도 일치하지 않아 분기문 내의 어떤 블록도 실행되지 못하는 경우에는 switch구문의 fall이라 하는데,
// 이때 switch구문은 완전한 비교 패턴을 구성하지 못한것으로 간주합니다.
이클립스 플러그인, 디펜던시,시스템 오류 시 조치법 :) (0) | 2017.09.27 |
---|---|
도서 리뷰] Learning JavaScript Feat, 한빛미디어 (0) | 2017.08.16 |
swift switch구문 편! (2) | 2016.06.01 |
Swift programming language Guard구문! :) (0) | 2016.05.27 |
160515 Swift IF문! 조건문에 대해서 :) (0) | 2016.05.15 |
// 반갑습니다, 에르의 생각발전소입니다 :)
// 이번 시간 다뤄볼 주제는 switch구문입니다!
/* switch 구문
switch 비교 대상 {
case pattern 1 :
statement
case pattern 2 :
statement
default :
statement
}
다양한 가능성이 있는 여러개의 조건 비교에 효율적으로 사용하기위해
if~ else if 구문 보다는 swift구문이 더 적합하다고 할 수 있습니다.
case pattern 마다 조건을 제시하고 default값에는 모든 변수를 대변할 구문을 실행합니다.
기존의 C언어나 자바 등 많은 언어에도 switch구문이 있지만, 스위프트의 switch구문과의 차이점이 있습니다.
스위프트의 switch구문은 일치하는 패턴이 있을 경우 해당 패턴과 일치하는 블록의 실행 코드를 처리한 후 전체 분기문을 종료하고
다음 구문을 진행합니다.
뒤에 일치하는 패턴이 더 있더라도, 맨 처음 일치하는 case구문만 실행합니다.
그리고 기존의 C나 자바는 추가적으로 일치하는 case구문이 있더라고 실행됩니다.
break구문이 따로 있어야만 멈추는게 기존 언어들의 특징이지요.
이부분에서는 스위프트가 진화했다고도 볼 수 있을 것 같습니다.
var con = 1
switch con {
case 1 :
print("해당 값은 1 입니다.")
case 2 :
print("해당 값은 2 입니다.")
case 3 :
print("해당 값은 3 입니다.")
default :
print("어느 조건과도 일치하지 않습니다.")
}
// break구문에 대해서 말씀드렸는데,
// 스위프트에서도 타언어처럼 사용할 수 있는 장치가 있습니다.
// 바로 fallthrough 기능입니다.
// fallthrough를 삽입하면, 해당 케이스는 무시하고 다음 케이스로 이동합니다.
// 아래 예제를 보시지요!
let test : Character = "L"
switch test {
case "l" :
print("글자는 l입니다.")
case "L":
fallthrough
default :
print("일치하는 글자가 없슴당")
}
// case "L"에 해당되는 값임에도 fallthrough가 붙어있음으로써, default값이 실행되었습니다.
// 명시적으로 구분해서, 좀 더 스위치구문을 탄탄히 만들 수 있습니다.
// 위 예제들 실행시 나오는 값들 사진입니다 :)
도서 리뷰] Learning JavaScript Feat, 한빛미디어 (0) | 2017.08.16 |
---|---|
Swift Fall Through구문 편! (0) | 2016.07.23 |
Swift programming language Guard구문! :) (0) | 2016.05.27 |
160515 Swift IF문! 조건문에 대해서 :) (0) | 2016.05.15 |
160513 Swift While 구문편 :) (0) | 2016.05.14 |
RECENT COMMENT