반응형

안녕하세요~ 에르의 생각발전소입니다 :)

이번 시간에 다뤄 볼 주제는 단순 구문과 흐름 제어 구문 입니다 :)

프로그램을 만들 때 더 잘 작동할 수 있도록

일종의 윤활유라고 할 수 있겠지요?

뭐 뭐든 안중요한게 있겠습니까?

다 모든 프로그래밍 지식들이 소중하지요.

어찌됬든, 시작해보겠습니다 :0






/* 프로그래밍 과정 작성하게되는 코드를 구문이라고 하며,

 

 앱하나를 개발하기위해서 수십줄부터~ 수만줄의 코드가 필요하며, 이와 더불어 디자인 음향 네트워크 등등 따지면, 많은 노력과 시간이 필요합니다.

 

 구문의 종류는 단순 구문과 흐름 제어 구문으로 나뉘는데,


 단순 구문은 말그대로 객체의 선언 정의 일반 구문인 반면


 흐름 제어 구문은 조건문이라고 있겠지요 :)

 

 대게 흐름 제어 구문은 종류로 나눌 있는데


 -반복문, 조건문, 제어 전달문으로 나눌 있습니다.

반복문은 For구문과 While구문으로 나눌 있습니다.

 

 for 반복문은 주어진 구문을 정해진 횟수만큼 실행하며,

 

 for~in구문과 for구문으로 나눌 있습니다.

 

 for 구문은 반복할 때마다 카운터를 증가시키며 조건이 충족될 때까지 반복실행하며

 for in 구문은 순서에 따른 각각의 아이템에 대하여, 반복한다는 차이점이 있습니다.

 

        for (초기값; 비교 조건; 증가값){

        

            반복 실핼 구문

        }

 

 위와같이 이루어져있습니다.

 

 

 */


//  노란색 세모는 에러가 아닙니다.


//  뭐 일종의 스위프트 언어 자체에서 제공하는 권유? 랄까요?


// 저 노란색 세모를 누르시면~

//  ++ is deprecated: it will be removed in swift 3 

//  Fix - it Replace "++" with " += 1"


//  ++는 반대되었습니다. 스위프트3에서는 제거될 문법입니다!


// ++ 대신에 += 1 을 사용하여, 대체하세요 :)


// 라고 ~ 친~절히 알려주네요 :)

// 


for ex in 0 ..< 11 {

    print("\(ex)번째 구독입니다.")

}


// 스위프트가 시키는대로 대체한 모습입니다. 

// 근데 += 1 이 아니라 아예 다른 코드가 되버렸네요?

for ex in 0 ..< 11  여기에서 0..<11 는 0부터 10까지라는 뜻이됩니다.

//  결국은 0...10 과 똑같은 뜻이지요 :)

// for 구문이 for in 구문으로 변경되었고 스위프트에 최적화된 코드로 대체되었습니다 :)

// 증가도 가능하며, 반대로 차감도 가능합니다!

 

// for 구문을 실행하여, i라는 변수를 제공하여, 2016 값을 주고 i 는 1994보다 작고 1씩 감소한다.


// 이번에는 스위프트에서 추천하는 연산자인 -=1 연산자를 사용하였습니다. :)


// for in 구문은 배열, 딕셔너리, 범위 데이터의 개별 점수 , 문자열 순번으로 관리되는 데이터 타입을 효과적으로 순회할 있는 구문입니다.


// for 루프 상수 in 순회 대상 {

//        실핼구문

// }


for loopNumber in 1...5 {

    print("2 X \(loopNumber) = \(loopNumber*2)")

}


// for in 구문을 사용하여, loopNumber라는 루프 상수를 선언하고 순회대상으로는  1...5를 지정했습니다. 1..<6도 가능하겠지요?


// 그리고 print 문법을 사용하여 실행하였습니다.


// 나이 계산이 가능하네요 :)



// 문자열 기억하시나요?

// 문자열과 문자의 차이도 기억나시는 분들은 이해가 쉬울겁니다 

//  


var lang = "swift"

for char in lang.characters {

    print("개별 문자는 \(char) 입니다.")

}


//  for char in lang.characters 에서 character는  


//  문자열을 문자로 순회 구간을 지정한다는 얘기입니다.

//  고로 swift는 5자이니 5회 순환하겠지요?

// var characters : String.CharacterView {get}

// A collection of Characters representing the String's extended grapheme clusters.

// 문자들의 콜렉션으로 문자열의 확장된 서기소의 다발을 일컫는다 라고 얘기해주네요.


var lang = "swift"

for char in lang.characters {

    print("개별 문자는 \(char) 입니다.")

}



// 고로, 위와같은 결과값을 얻으실 수 있습니다 :))))


//  또한 루프상수는 생략할 수 있습니다 :) _ 언더바를 대신 집어너어서 가능하지요


let size = 5

let padchar = "0"

var keyword = "3"


for _ in 1...size {

    keyword = padchar + keyword

    

}

print("\(keyword)")

// size = 5 ; patcher = "0" ; var keyword = "3"

//  for _ in 1...size 는 1...5까지의 의미가 됩니다.

// keyword = patcher + keyword 이면,

// padchar의 0가 다섯번 삽입된 후 3이 붙는단 얘기입니다.

//  고로, 값은 000003 이지요 :)


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 Collection: Dictionary 와 Set

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 스위프트 함수편!

2016/05/12 - [프로그래밍발전소 ♫] - 160512 Swift 단순 구문 , 흐름 제어 구문 for , for ~ in구문 :)

2016/05/13 - [프로그래밍발전소 ♫] - 160513 Swift While 구문편 :)


반응형
by 발전소장 에르 :) 2016. 5. 13. 02:22
반응형

안녕하세요~ 에르의 생각발전소입니다 :)

이번 시간에는 Tuple 과 Typealias를 다뤄볼 건데요.

스위프트의 장점이고 장점인 만큼 많이 활용되는 파트이니,

주의깊게 살펴봐주세요!

자! 그럼 시작해보겠습니다.






상수로된 튜플인 time1을 생성하였고 2, 43, 1 이란 값들을 괄호 묶었습니다.   (사진의 오타는 애교로..)

2란 값을 불러오고자하면 0을 42이라는 값을 불러오고자하면 1을 쓰시면 됩니다.

대게 첫번째 숫자니 1부터 시작할거라 생각을 하시고 실수를 많이들 하시는데,

시작은 0 부터 입니다! 참고해주세요!

튜플의 값에는 플롯, 스트링, 섞여들어가도 무방한데요. 

예로 하나 만들어보았습니다.

language라는 스트링 타입의 값과. 11이라는 정수값은 가진 값이 ex라는 튜플안에 속해있는 모습니다.

똑같이 0,1,2 순번으로 시작됩니다.

물론 0, 1, 2 대신 문자로 변경이 가능한데요.

위 화면은 0,1,2 대신 hour, min, sec 로 변환시킨 모습입니다.

상황에 맞게 바꾼다면, 더 유용하겠죠?

튜플을 튜플로 또 묶는 건데요.

각 3개의 값을 가지고 있는 두 개의 튜플을 하나의 다른 튜플로 묶은 코드입니다.

일종의 사슬을 만들어준다고나 할까요?

begin이 time1, done이 time2 를 가지고 있는 모습입니다.



그럼 묶여있는 값중 최하위 값을 불러오고 싶다~고 하시면 

file:///Users/Logan/Desktop/Screen%20Shot%202016-04-22%20at%2011.05.56%20pm 이런 컴퓨터디렉토리 주소처럼


done에 있는 hour값을 불러야겠죠?

done.hour은!?

done = > time2

time2:( hour:Int, min:int, sec:int ) = ( 1, 51, 15 ) => hour => 1

이라는 값이 나오게되겠죠?



이번에는 타입 얼라이어스입니다!

위 화면은 타입 얼라이어스를 설명하는 글입니다. 

typealias AudioSample = UInt16 이다.

var maxAmplitudeFound = AudioSample.min 이면, 0이다.

왜냐하면 UInt16의 최저값은 0이니까요.

이 처럼 타입 얼라이어스는 다른 이름으로 존재하는 값을 정의합니다.

time 이라는 타얼을 만들어 (h:int, m:int, s:int) 라는 타입을 정의하

period 라는 타얼을 만들어 start:time, end:time으로 타입을 정의했습니다.

period 타얼 안에 time의 타입이 들어갔지요? 



let now:period = ( (6,20,13) , (11,2,56) ) 로 start:time에 값을 주고 end:time에도 값을 각각 부여했습니다.


그럼 time이 start와 end로 된 period안에 들어가있고 start = 6,20,13이며, end는 11,2,56이네요.


print("we played a game until \(now.end.h) today. ") 라는 코드를 입력해


값을 불러오고자한다면, 추적해봅시다!


 now =  period, period =  (start:time. end:time) , end:time = 11,2,56 = h:11 , m:2, s:56 = h ==> 11 


이라는 결론에 도달하게 되는거죠!


이해가 되셨는지요!


쉽쥬?

반응형
by 발전소장 에르 :) 2016. 4. 23. 09:00
| 1 |