Swift/문법
스위프트(Swift) - 반복문 Ⅱ. while 구문
while 구문은 단순히 주어진 조건식의 결과가 false가 될 때까지 실행 구문을 계속 반복한다. 말하자면 while 구문은 '조건을 만족하는 동안은 계속 실행'되는 것이다. while 구문은 다음과 같을 때 사용하는게 좋다. 실행 횟수가 명확하지 않을 때 직접 실행해보기 전까지는 실행 횟수를 알 수 없을 때 실행 횟수를 기반으로 할 수 없는 조건일 때 실행횟수가 명확하지 않을 경우 while 문을 쓴다고 이해하면 된다. while 구문의 형식은 다음과 같다. while { } while 키워드 다음엔 조건이 사용되는데, 조건식은 반드시 참(true)나 거짓(false)을 결과값으로 반환해야 한다. 조건식의 값이 true일 동안은 실행 블록 내의 코드가 반복되어 수행되나 false를 반환하는 순간 반복..
스위프트(Swift) - 반복문Ⅰ. for ~ in구문
주어진 조건에 의해 특정 코드 블록을 반복적으로 실행할 수 있게 해주는 구문을 반복문이라고 한다. 프로그래밍에서 코드 블록의 반복을 루프(Loop)라고 부르고 반복되는 횟수를 루프 횟수라고 부른다. 스위프트에선 루프 횟수가 정해져 있는지를 기준으로 두 가지 방식의 반복문이 존재한다. For 반복문 While 반복문 For 반복문은 in 키워드와 함께 사용되어 정해진 횟수만큼 주어진 코드 블록을 반복해 실행한다. While 반복문은 주어진 조건이 false가 될 때까지 계속해서 구문을 반복 실행하는 특성이 있다. for ~ in 구문 for in { } for ~ in 구문을 구성하는 것은 루프 상수, 순회 대상, 실행할 구문 총 3개로 이루어져있다. 여기서 가장 중요한 것은 순회 대상이다. 순회 대상은 ..
스위프트(Swift) - 연산자
산술연산자 구분 연산자 사용 예 의미 단항 연산자 - -a 값의 부호 변경 이항 연산자 + a + b 값을 더함 - a - b 값을 뺌 * a * b 값을 곱함 / a / b 값을 나눔 % a % b a를 b로 나누고 난 후 나머지 비교 연산자 연산자 사용 예 의미 a > b a가 b보다 크면 true, 아니면 false = b a가 b보다 크거나 같으면 true, 아니면 false == a == b a가 b와 같으면 true, 아니면 false (수학의 =과 같은 개념) != a != b a와 b가 다르면 true, 아니면 false 논리 연산자 연산자 사용 예 의미 !(NOT) !a a가 true면 false, false면 true 반환 &&(AND) a && b a와 b 모두 true 일 때, tr..
스위프트(Swift) - 멀티 라인 스트링
간혹 문자열을 여러 줄로 나누어 작성해야할 때가 있다. 하지만 스위프트에서는 문자열 쿼우팅(" ") 내부에서 줄바꿈하는 것을 허용해주지 않기에 다음과 같이 작성시 오류가 발생하게 된다. let essay = "나는 지금 여기에서 뭘 하고 있는걸까? 무엇을 하는지 잘 모르겠다. 하지만 재미하나는 있는 거 같다" // (X) 컴파일 오류발생 이렇게 긴 문자열을 여러 줄에 작성하기 위해선 '+'연산자를 반드시 이용해야 한다. let essay = "나는 지금 여기에서 " + "뭘 하고 있는걸까? " + "무엇을 하는지 잘 모르겠다." + "하지만 재미하나는 있는 거 같다" 하지만 이렇게 작성하게 될 경우 다음과 같이 한 줄로 쭉 이어져서 작성이 된다. /* 실행결과 나는 지금 여기에서 뭘 하고 있는걸까? 무엇..
스위프트(Swift) - 타입이 다른 변수끼리의 결합, 문자열 템플릿
스위프트에선 기본적으로 서로다른 타입의 변수나 상수끼리의 결합연산은 허용되지 않는다. 하지만 프로그래밍 과정에선 서로 다른 타입의 변수나 상수를 결합해야 하는 경우가 종종 발생하는데 이를 위해 스위프트는 다음과 같은 방법들을 제공한다. var strMe = "나의 키는" var height = 188 var heightstrMe = strMe + String(height) // "나의 키는 188" String형인 StrMe와 Int형인 height는 본래 결합연산이 불가능하다. 하지만 변수의 값을 다른 타입으로 변경한다면 연산이 가능해진다. 보통 이를 생성자 or 초기화 메소드라고 부르는데 요는 기본 자료형 객체를 다른 타입의 값으로 바꿔 새로운 객체를 만드는 방법이다. 여기선 String(188)로 ..
스위프트(Swift) - 타입 추론과 타입 어노테이션
스위프트에선 선언과 초기화를 동시에 할 수도 있지만, 분리하여 작성하는 것도 가능하다. // 선언과 초기화 같이 var day = 21 // 선언과 초기화 분리 var month : Int // 선언 month = 4 // 초기화 선언과 초기화를 분리하여 작성할 시 :Int를 빼면 어떻게 될까? 다음과 같이 위에서 선언한 변수랑 아래의 변수가 따로 인식되는 오류가 발생하게된다. 위에서 :Int란 타입 어노테이션(Type annotation)으로 변수나 상수를 선언할 때 그 타입을 명시적으로 선언해 줌으로써 어떤 타입의 값이 저장될지를 컴파일러에게 알려주는 문법이다. 타입 어노테이션을 사용한 예를 보자. var month : Int // 명시적인 Int 타입 var name : String // 명시적인 ..