Switch문//Syntaxswitch valueExpression {case pattern: statementscase pattern, pattern: statementsdefault: statements} switch문을 쉽게 풀어서 설명해보자.valueExpression에서 선언된 값과 각각의 case들을 매칭시킨다.그래서 값이 같다면, 해당 case에 있는 코드를 실행.같지 않다면, 다음 case로 이동. switch문에서는 모든 케이스를 매칭해야 한다.그래서 case들에 매칭을 하고, 남은 다른것들은default에서 처리한다.if문의 else와 같은 역할이라고 보면 된다. 두번째 case를 보자.여러개의 패턴과 매칭시킬수도 있다.이때는 &&(and)가 아닌 ||(or)이기 때문에 둘중의 하나만..
아래의 글을 먼저 읽고 오면 좋다. Swift 기본 문법 - Functions (함수)Functions(함수)- 특정 기능을 수행하는 코드 조각- 언제든지 다시 사용이 가능하다.쉽게 말해서 나만의 함수를 만드는 것! calling Functions 함수를 가져다 쓰는 것. SyntaxfunctionName(parameters) Definingquaker.tistory.com guard문// Syntaxguard condition else { statements} - 다른 조건문들과 마찬가지로 condition을 평가한 뒤 코드를 실행한다.- condition에는 bool 타입의 표현식이 와야 한다.- guard에서는 else 블럭을 비워둘 수 없다. condition이 true일때.guard문을 ..
조건문, 제어문- 특정 조건에 따라서 다른 상태를 만들어 주는 문법- 코드의 실행 흐름을 관리하는 핵심적인 구성 요소 if문if 문은 주어진 조건이 true일 때 코드 블록을 실행else if문은, if문은 false이지만, 만약 else if문이 true일 경우 코드 실행else 문은 if문과 else if문에서 주어진 모든 조건이 false일 때 코드 블록을 실행// if 단독 사용.if condition { statements}// else문까지 사용.if condition { statements} else { statements}// else if문까지 사용.if condition { // 조건이 true일 때 실행됨 - 만약} else if anotherCondition { // 다른 조건이 ..
할당연산자란 - 왼쪽 피연산자에 오른쪽 피연산자의 값을 저장하는 연산자- 할당 연산자는 이항연산자이다. //Syntaxa = blet a = 123 우리가 흔히 아는, 변수를 선언하고, 값을 저장하는 것도 할당연산자이다. LValue와 RValue위의 코드를 보면, 왼쪽에 있는 a는 LValue, 123은 RValue에 해당한다.LValue는 항상 메모리 공간을 가지고 있어야하며, RValue는 메모리 공간을 가지고 있지 않아도 된다.위에서는 변수로 선언했기때문에, 선언과 동시에 메모리 공간이 할당된다. LValue는 메모리 공간을 가지고 있기 때문에, 값을 읽거나 저장할 수 있고, 연산자 왼쪽과 오른쪽에 모두 올 수 있다.RValue는 메모리 공간이 없는 표현식이기 때문에, 연산자 오른쪽에만 올 수 있..
Ternary Operator (삼항연산자 / 조건연산자)question ? answer1 : answer2 만약 question이 true라면, answer1을 return하고, false라면 answer2를 return 한다.question을 제외한 answer1과 answer2의 자료형은 같아야 한다. 예시를 보자. let timeDifference = 8timeDifference > 7 ? "시차가 큽니다." : "시차가 크지 않습니다." //"시차가 큽니다."let mungchiIsCute = truemungchiIsCute == false ? "맞습니다" : "ㅡ_ㅡ" //"ㅡ_ㅡ"let thisYear = "2024"thisYear > 2022 ? "맞아요" : "아니에요" //"아니에..
표현식 (expression)- 표현식은 코드를 실행했을때 하나의 결과값이 나오는 코드- Tokens = 문법적으로 더 이상 나눌 수 없는 요소1 + 21과 +와 2는 각각의 토큰이다. 따라서 위에는 3개의 토큰이 있는 셈이다.그리고 또다른 예로 if라는 키워드는 "if"라는 키워드 자체가 하나의 토큰이다. 공백을 부여한다면 더이상 제대로 된 하나의 토큰이 아니다.var나 let도 마찬가지겠지? swift에서 지정한 이러한 코드들은 그 자체로 하나의 토큰이다.- 표현식이 하나 이상 모여서 특정 기능을 실행하는 코드를 문장이라고 함. Literals- 숫자 7 처럼 의미가 변경되지 않고 있는 그대로 사용되는 값.// ex)let x2 = x > 7위의 코드에서 Literal은 7밖에 없다.- 이름에 숫자..
먼저 읽으면 좋은글 Swift 기본 문법 - 데이터 타입Data Types데이터 타입의 컨셉은- 자료형을 데이터 타입 또는 줄여서 타입이라고 함.- 저장한 데이터에는 타입이 존재- 다양한 타입들에 다양한 쓰임새- 자료형은 메모리에 저장되는 메모리의 종류quaker.tistory.com String 과 Character 두 타입의 차이점은문자열과, 문자 라는 차이점이다. 예시를 보자.// String(문자열)let baechu = "green quaker"Swift는 형식추론을 사용하기 때문에, 따로 타입을 지정하지 않는다면, 알아서 타입을 지정한다.위의 코드와 같은 경우에는 문자열. String 타입으로 자동으로 선언된다. 만약 타입을 수동으로 설정해주고 싶다면,Type Annotation 문법을 사..
Scope (범위)- 변수와 상수는 모두 자기만의 범위(Scope)를 가지고 있다.- 자신이 속한 범위 내에서 항상 유일한 이름을 가져야 한다.- 상위 Scope에서는 하위 Scope에 선언되어 있는 상수와 변수에 접근 할 수 없다.- 서로 다른 범위에 동일한 이름이 있다면 가장 인접한 범위에 있는 이름을 사용한다.- Brace { }로 Global과 Local을 구분한다.- Gloabl Scope가 아닌 다른 모든 Scope는 시작과 끝이 명확해야 한다. Global Scope (전역 범위)- 어떠한 Brace { }에도 속하지 않음. 단 하나만 존재함.- 동일한 범위에 있는 변수와 상수에 접근할 수 있음.- 동일한 범위에서는 이전에 선언되어 있는 변수와 상수에만 접근할 수 있음.- 선언 순서에 상관..
사전 목표.- 함수를 최대한 많이 만들어서 활용해 볼 것.- 이때 왜 이렇게 작성했고 왜 이런식으로 구현했는지 알아보기 쉽게 작성할 것. 사전 준비.struct parrot { let name: String var weight: Int var temp: Double var time: Int var condition: Int var counting: Int //지난 시간에 공부했던, 제대로 초기화하기 위해서 초기화 해줌 init(name: String, weight: Int, temp: Double, time: Int, condition: Int, counting: Int) { self.name = name self.weight ..