본캠프 2주차 월요일 TIL

호씨·2024년 10월 28일
0

금일은 제공해준 iOS 강의를 보면서 기초적인 정보랑 문법을 배울수 있는 날이였다.

iOS에 대해서 아는것이 없으니 되게 중요한 첫 시작이였다고 생각이 들어서 집중해서 들었었다.

일단 배운기초적인것들을 정리를하자면

1. Swift Convention Guide

컨밴션이란 코드를 작성할 때 지키면 좋은 통일된 규칙을 의미한다. ⇒ 통일된 규칙이 있으면 다른 사람이 작성한 코드를 빠르게 이해할 수 있다.

Swift는 Camel Case라는 방식으로 이름을 짓는다 먼저 낙타의 혹처럼 글씨의 공백대신 대문자가 들어간다. 그래서 내 velog 아이디를 기본으로 설명하자면 내 나이디는 tae ryu 7이지만 이걸 camelcase로 쓴다면 taeRyu7 이런식으로 사용한다.

2. 변수와 상수

- `var` (변수) - 변경할 수 있는 변수를 선언할 때 사용한다. - 데이터 타입이 정해진 후 다른 타입의 값을 넣으면 오류가 발생한다. - 이름은 소문자로 시작하는게 좋다.
var 변수명 : 변수의 데이터 타입 = "실제값"
var name: String = "Ryu"
- `let` (상수) - 상수에 값을 넣으면 변경할 수 없다. - 데이터 타입이 정해진 후 다른 타입의 값을 넣으면 오류가 발생한다. - 이름은 소문자로 시작하는게 좋다.
let 상수이름: 상수의 데이터 타입 = "실제 값" 
let name: String = "Ryu"

선언방법
1. 기본선언형

/* 
// 기본 선언 방법
// var 변수명: 데이터의 타입(숫자, 문자 등등...) 
// let 상수명: 데이터 타입(숫자, 문자 등등...)

// Int는 숫자 타입을 의미합니다.
// 한국어 번역 : age 이라는 이름의 변수의 타입은 Int다.
var age: Int 

// String은 문자열 타입을 의미합니다.
// 한국어 번역 : name 이라는 이름의 상수의 타입은 String이다.
let name: String 
// 위에서 만들어놓은 age, name같은 변수와 상수는 사용할 수 있다.
*/
  1. 선언과 동시에 값을 할당하는 방법
// 기본 선언에서 값을 바로 할당할 수 있ek.
// 값을 할당하려면 = 을 사용하면 된다. 
// = 오른쪽의 값을 왼쪽으로 넣는 역할을 한다.

// age 라는 이름의 변수의 타입은 Int이고 할당값은 20이다.
var age: Int = 20

// name 이라는 이름의 상수의 타입은 String이고 할당값은 "Ryu" 다.
let name: String = "Ryu"

// let은 상수이기 때문에 새로운 값을 다시 할당할 수 없다.
  1. 타입을 사용하지않고 바로 값을 할당하는법
    데이터추론을 통해서 할당된 값을 보고 컴파일러가 타입을 정해준다.
// Swift 컴파일러가 할당하는 값을 보고 데이터타입을 정해준다.

// age 라는 이름의 변수에 20을 할당한다. 
var age = 27 
age = 28 // 변수에는 새로운 값을 할당할 수 있다.

// name 이라는 이름의 상수에 "내배캠"을 할당한다.
let name = "Ryu" 

name = " taeRyu" // Error 발생! let에는 새로운 값을 할당할 수 없다.
  1. 변수와 상수 이름 짓기
  • 변수의 이름은 소문자로 시작해야 한다.
let name = "Ryu"   // ✅ 상수의 이름이 name으로 소문자로 시작하고 있어요. 
var age = 28         // ✅ 변수의 이름이 age로 소문자로 시작하고 있어요.
let myName = "Ryu" // ✅ 상수의 이름이 m으로 소문자로 시작하고 Camel Case가 적용되어 있어요.

let Name = "Ryu"   // ❌ 상수의 이름이 N 대문자로 시작하고 있어요.
var Age = 28         // ❌ 변수의 이름이 A 대문자로 시작하고 있어요.

공통사항 : 다른 데이터 타입으로 바꿀수 없다

차이점
var(변수) = 가변형(안에 들어가는 값을 상황에 맞게 바꿀수 있다)
let(상수) = 불변형(안에 들어가는 값을 바꿀수 없다)

3. 주석

주석은 컴파일러(컴퓨터)가 해당부분을 무시하고 실행하지 않는다.
한줄주석 //
//이렇게 하면 인식을 못함

여러줄주석 /**/
/**
 이렇게하면
 인식을 못함
*/

만약 빠르게 주석하고 싶으면 Command + / 를 동시에 누르면 주석이 되거나 풀린다

4. 기본 데이터 타입

  • 데이터 타입은 대문자로 시작한다. String, Int, Float, Any, …
  1. 숫자(정수, 소수) Int (정수형)
  • 정수를 표현하는 데이터 타입이다.
  • 소수점은 표현할 수 없다.
  • -2,147,483,648 ~ 2,147,483,647 사이의 정수를 사용할 수 있음
let age: Int = 150

print(age) // 150

Float(실수)

- `3.1458`, `0.1`, `-273.15` 같은 실수를 표현하는 데이터 타입이다. - 소수점까지 표현할 수 있다. - 32비트의 메모리 공간을 차지하며, 소수점 이하 6자리까지 표현할 수 있다.
let height: Float = 180.12345678

print(height) // 180.12346

Double(실수)

- `3.1458`, `0.1`, `-273.15` 같은 실수를 표현하는 데이터 타입이다.
- 소수점까지 표현할 수 있다.
- 64비트의 메모리 공간을 차지하며, 소수점 이하 15자리까지 표현할 수 있다.
  
```Swift
let weight = 80.01234567890123456789

print(weight) // 80.01234567890124
  1. 문자(문자열, 문자) String(문자열)
  • 여러개의 문자를 저장하는 타입이다.
  • 문자열은 “Hello”, “Apple” 과 같이 연속된 문자다.
  • 쌍따옴표(")로 감싼 문자열을 사용한다.
  • () 를 사용하여 변수나 상수를 사용할 수 있다.
// " 쌍따옴표로 감싸서 문자열을 생성할 수 있다.
let hello = "안녕하세요! 수강생 여러분" 

// 쌍따옴표를 3개 연속사용하면 여러줄의 문자열을 만들 수 있다.
let welcomeSwiftClass = """
안녕하세요! 수강생 여러분
Swift 강의에 오신걸 환영 합니다 :)
"""

// 빈 문자열을 만들 수 있다.
let emptyString2 = ""
let emptyString = String()

// 문자열 안에 변수나 상수의 값을 출력하고 싶다면 \()를 사용하세요!
let age = 20
print("저의 나이는 \(age) 입니다.") // 출력 : 저의 나이는 20 입니다. 

Character(문자)

- 한 글자를 저장하는 데이터 타입이다. ```Swift let char: Character = "A" // Character(문자) 타입

let character = "A" // String(문자열) 타입
// Swift 컴파일러가 String으로 유추하여 자동으로 String 타입으로 설정

// 문자열 배열을 String으로 만들 수 있다.
let catCharacters: [Character] = ["C", "a", "t", "!", "🐱"]
let catString = String(catCharacters)
print(catString)
// Prints "Cat!🐱"


Boolean(참 또는 거짓) 
Boolean
 - Boolean 타입(Bool)은 참 또는 거짓을 나타낸다.
 - 값은 오직 true 또는 false 두개로 참과 거짓을 결정하는데 사용한다.
 - true 는 참이고 false는 거짓이다.

```Swift
let isOrangeColorGreen = false
let isAppleColorRed = true 

let isArea: Bool = false
print(isArea) // false 출력

Tuple(여러 값의 묶음)
Tuple

  • 기본적으로 제공하는 기본데이터 타입으로 개발하기에는 타입이 부족하다.
  • 그래서 나온 기능중 하나인 Tuple 은 데이터 타입의 값들을 그룹화 하여 하나의 타입처럼 사용할 수 있다.
  • 특징
    - 여러값을 하나로 묶어서 관리할 수 있다.
    - 튜플 내의 값들은 순서대로 저장되며, 각 값은 고유의 인덱스를 가진다.
    - 튜플의 각 값은 서로 다른 타입을 가질 수 있다.
    - 튜플의 사용 방법 (선언과 접근 방법)
    - 튜플을 선언할 때 소괄호()를 사용하며, 각 값을 쉼표로 구분한다.
    - 튜플의 값에 접근할 때는 Index(순서)를 사용하거나 이름을 붙여 접근할 수 있다.
// 이름을 정하지 않은 튜플
// () 안에 타입들을 모아서 사용한다.

// 선언 방법
let person: (String, Int) = ("Ryu", 28)
// 상수 person의 타입은 String, Int를 그룹화한 튜플이고, 값에는 ("Ryu", 28)을 할당한다.

// 접근 방법
person.0 // "Ryu" -> person 상수의 0번째 값 이다. (index는 0부터 시작한다)
person.1 // 28 -> person 상수의 1번째 값이다. 
// 이름을 붙인 튜플

// 튜플을 선언할 때 값에 이름을 부여할 수 있다. 조금더 직관적이게 된다.

// 선언 방법
let person: (name: String, age: Int) = (name: "Ryu", age: 28)
// 해석 : 상수의 이름은 person이고 타입은 String, Int를 그룹화한 튜플이다.
//       String에는 name이라는 이름을 붙였고 Int에는 age라는 이름을 붙였다.
//       값에는 name에 "Ryu"을 할당했고, age에는 28 할당했다.

 
// 접근 방법
person.name // "Ryu" -> person의 name의 값
person.age // 28 -> person의 age 값

: 컨벤션

타입을 정하는 : 앞에는 공백이 없고 뒤에는 공백이 있게 코드를 작성해야한다. ```Swift var age: Int let name: String // 처럼 : 앞에는 공백이 없고 뒤에만 공백이 있으면 좋다! ```

5. 연산자

  • 대입연산자, 산술연산자, 비교연산자, 논리연산자, 범위연산자

대입 연산자

- 연산자는 값을 변수나 상수에 대입할 때 사용한다. - 연산자 기준으로 뒤에 값을 앞에 대입(할당) 한다. - 변수의 데이터 타입이 같다면 다른 값으로 재할당할 수 있다. ``` let age = 20 // 해석 : age 라는 상수에 20을 대입(할당)합니다. // 이렇게 하면 age에는 실제 값이 20이 들어가있습니다.

var name = "내배캠" // 해석 : name이라는 변수에 "내배캠" 이라는 값을 대입(할당)합니다.
var address = "서울"

name = address // adress에 있는 값 서울을 name 변수에 할당합니다.
print(name) // name변수의 저장 값 "서울"이 출력됩니다.


산술 연산자

더하기
+ : 두 값을 더한다.
+=  : 기존 값에 더한 후 할당한다.
var result = 10 + 20 // result 변수에 10 + 20의 값 30을 할당한다.
print(result) // 출력 : 30

result += 3 // result에 3을 더한 후 값을 할당한다.
print(result) // 출력 : 33

let value = 5
result += value // result에 value 값 더한 후 할당한다.
print(result) // 38 




나누기
/ : 두 값을 나눈다.
var result = 30 / 7 // result 변수에 30 나누기 7의 값인 4를 할당한다.

print(result) // 출력 : 4



곱하기
* : 두 값을 곱한다.
*= : 기존 값에서 곱한 뒤 할당한다.
var result = 10 * 3 // result 변수에 10 * 3의 값 30을 할당한다.
print(result) // 출력 : 30

result *= 2 // result 값에 2를 곱한 값을 할당한다.
print(result) // 출력 : 60



나머지
% : 두 값을 나눈 후의 나머지를 반환한다.
var result = 10 % 3 // result 변수에 10/3의 나머지값 1을 할당한다.

print(result) // 출력 : 1

비교연산자
- ==  : 값이 같은지 확인
    - a == b  : a와 b가 같은지 확인
    - 1 == 1  : 숫자 1과 숫자 1이 같은지 확인 → true
- !=  : 두 값이 다른지 확인
    - a != b  : a와 b가 같지 않은지 확인
    - 1 != 1  : 숫자 1과 숫자 1이 같지 않은지 확인 → false
- >    : 왼쪽의 값이 오른쪽 값보다 더 큰지 확인
    - a > b  : a가 b보다 큰지 확인
    - 1 > 2  : 1이 2보다 큰지 확인 →  false
- <    : 왼쪽의 값이 오른쪽 값보다 더 작은지 확인
    - a < b  : a가 b보다 작은지 확인
    - 1 < 2  : 1이 2보다 작은지 확인 → true
- >=  : 왼쪽의 값이 크거나 같은지 확인
    - a >= b  : a가 b보다 크거나 같은지 확인
    - 1 >= 1  : 1이 1보다 크거나 같은지 확인 →  true
- <=  : 왼쪽의 값이 작거나 같은지 확인
    - a <= b  : a가 b보다 작거나 같은지 확인
    - 1 <= 1  : 1이 1보다 작거나 같은지 확인 → true

  
논리연산자(Bool 값을 조작하거나 결합할 때 사용)
NOT  연산자
! 키워드를 사용.
!true  처럼 느낌표가 앞에 온다. 
Bool 값을 반대로 반환하는 연산자
true → false 
false → true 
var allowedEntry = false

print(allowedEntry) // false가 출력된다.
print(!allowedEntry) // false의 반대값인 true가 출력된다.

allowedEntry = !allowedEntry // allowedEntry 변수에 allowedEntry의 값 false 의 반대인 true를 대입한다.

print(allowedEntry) // true가 출력된다.


AND  연산자
두개의 값을 비교하여 두개의 값이 모두 true  일 때 true를 반환하는 연산자
한개가 true이고 한개가 false일 때는 false를 반환한다.
&&  키워드를 사용합니다. 
true && true // true
true && false // false
false && false // false 

let isHavingPan = false
let isHavingPineApple = true
let pineAppleApplePan = isHavingPan && isHavingPineApple 

print(pineAppleApplePan) 
// false isHavingPineApple이 false이기 때문에 전체값이 false가 된다.


OR 연산자
두개의 값을 비교하여 한개만 true일 때 true를 반환하는 연산자
한개가 true 이고 한개가 false일 때 true를 반환한다.
|| 키워드를 사용한다.
true || true // true 
true || false // true
false || false // fase 

let isGreenPan = false
let isYelloPan = true 
let isHavingPan = isGreenPan || isYelloPan 

print(isHavingPan) // true
// isGreenPan, isYellowPan 둘 중 하나가 true여서 true가 할당된다.



범위 연산자 (숫자나 값의 범위를 나타낼 때 사용하는 연산자)
닫힌 범위 연산자(Closed Range Operator)
a...b  와 같이 ... 를 사용한다.
시작값과 마지막값을 모두 포함하는 범위를 정의할 때 사용한다.
a...b  a이상 b이하의 범위를 나타낸다.
(0...3) // 0,1,2,3 의 범위로 0이상 3이하의 범위를 포함한다.
(10...12) // 10, 11, 12 의 범위로 10이상 12이하의 범위를 포함한다.


반-열림 범위 연산자(Half-Open Range Operator)
a..<b  와 같이 ..< 를 사용한다.
시작값은 포함되어 있고 마지막 값은 포함되어 있지 않은 범위를 정의한다.
a..<b  a이상 b미만의 범위를 나타낸다.
(0..<3) // 0,1,2 의 범위
(10..<15) // 10, 11, 12, 13, 14 의 범위를 포함한다.


단-방향 범위(One-Sided Ranges)
a...  ...b  와 같이 한쪽에만 값을 넣어서 사용한다.
오로지 한쪽으로만 범위를 갖고 있다.
(10...) // 10, 11, 12, 13 ...


삼항연산자 (조건 ? 참일 때 반환값 : 거짓일 때 반환값 형태를 가진 연산자)
let age = 20
let isAdult = age > 20 ? "성인 입니다" : "미성년자 입니다"
// 위에 코드를 번역해보면
// age 상수에 20 값을 할당한다.
// isAdult 상수에 age가 20이면 "성인입니다"를 할당하고 아니면 "미성년자 입니다"를 할당한다.


연산자 코드 컨밴션
- `대입 연산자` , `산술 연산자`, `비교 연산자` 양옆으로 공백을 줘야한다.
- 논리연산자 `NOT`을 제외한 `AND`, `OR` 연산자에는 양옆으로 공백을 줘야한다.
- 범위 연산자는 공백을 안줘도 된다.

```Swift

6. 조건문

if문

  • 조건이 true 이면 코드 블록을 실행하고, false 이면 else 의 코드블록이 실행된다.
  • ifelse 중간에 조건을 추가하려면 else if 로 조건을 추가할 수 있다.

if 10 > 20 { // 만약 10 이 20보다 크다면 아래 코드블록을 실행합니다.
	print("10은 20보다 큽니다!!!")
} else { // 만약 10이 20보다 크지 않다면 아래 코드블록을 실행합니다.
	print("10은 20보다 작습니다!!!")
}


var age = 15 

if age >= 20 {
	print("20살이 넘은 성인입니다")
} else if age >= 17 {
	print("20살 미만이고 17살 이상인 고등학생입니다.")
} else if age >= 14 {
	print("17살 미만이고 14살 이상인 중학생입니다.")
} else {
	print("어린이 입니다!")
}

/*
// 위의 코드 번역본
var age = 15  // age 상수에 15를 할당.

if age >= 20 { // 만약 age가 20 이상이면 아래 코드블록을 실행.
	print("20살이 넘은 성인입니다")
} else if age >= 17 { // 만약 age가 20 미만이고 17 이상이면 아래 코드블록을 실행.
	print("20살 미만이고 17살 이상인 고등학생입니다.")
} else if age >= 14 { // 만약 age가 17 미만이고 14 이상이면 아래 블록을 실행.
	print("17살 미만이고 14살 이상인 중학생입니다.")
} else { // 위의 조건들이 모두 false이면 else의 code block을 실행.
	print("어린이 입니다!")
}
*/

guard문

  • guard 는 조건이 false일 때 코드를 더이상 실행시키지 않고 코드블록을 빠져나가는 조건문이다.
  • 조건이 true일 경우 코드를 계속 진행하고, false일 경우 else 코드 블록에서 탈출해야한다.
  • else 블록은 필수다.
guard 조건 else { 
	// 조건이 false 일 때 실행되는 코드블록  
	// return, break, continue, throw등 코드블록을 종료하는 구문이 필요
	return 
}

// 만약 위에서 조건이 false라면 아래 코드는 실행되지 않는다.
// ealry exit (빠른 탈출)이라고도 불린다.

// 조건이 true이면 아래의 코드를 게속 진행한다.
// 반복문에서 사용하는 guard 

for i in 0...10 {
	print(i)
	guard i < 5 else { break }  
}

/* 출력 값
0
1
2
3
4
5
*/

// 한국말로 풀어보기
for i in 0...10 { // 0부터 10까지 반복합니다. 현재값은 i에 넣는다.
	print(i) 
	guard i < 5 else { break }   // i가 5보다 작다면 true이기 때문에 계속 진행.	
								 // i가 5보다 크다면 false이기 때문에 else 코드블록을 실행.
								 // else 코드블록에서는 for 반복문을 탈출하는 break 
}

if문 vs guard문

  • if 조건문은 true 일 때 코드블록을 실행하고, false 일 때 다른처리를 할 수 있다.
  • guard 조건문은 false일 때 즉시 탈출하는 방식.
  • if 조건문은 코드블록을 명시적으로 작성해야 하지만 guardtrue 일 때 코드블록이 없고 계속 진행.

guard는 아래의 더이상 코드를 진행하지 못하게 하는 경비원 같은 존재
if 는 코드블록에 들어갈 수 있는 티켓

switch문

  • 하나의 값을 여러 경우와 비교하는 조건문.
  • 모든 경우의 조건을 처리해야 한다.
  • case, default 를 사용해서 조건들에 맞는 코드를 실행할 수 있다.
  • case 에서 조건을 확인하여 조건이 맞다면 코드를 실행하고 switch 코드블록에서 빠져나다.
  • case 에서 맞는 조건이 없다면 default 에서 구현한 코드가 실행다.
  • case, default 조건 뒤에는 : 을 사용하여 동작을 구현해야 한다.
  • case 에서 실행하고 싶은 코드가 없다면 break 키워드를 사용해야 한다.
    • 아무런 코드가 없으면 빌드오류가 발생한다.
  • case 에서 조건이 없다면 default 코드를 실행한다.
  • case 에서 조건이 맞아서 실행된 후 아래의 조건도 확인하고 싶다면 fallthrough 키워드를 사용해야한다.
let score = 80

switch score {
	case 90...100:
	    print("A 등급 입니다!")
	case 80..<90:
	    print("B 등급 입니다.")
	case 70..<80:
	    print("C 등급 입니다.")
	default:
	    print("D 등급 입니다.")
}

// 번역
let score = 80 // score 이름의 상수에 80을 할당한다.

switch score { // score를 switch 코드블록에 넣는다. 
	case 90...100: // score가 90이상 100점 이하일 때 아래 코드를 실행한다.
	    print("A 등급 입니다!")
	case 80..<90: // score가 80이상 90미만일 때 아래 코드를 실행한다.
	    print("B 등급 입니다.")
	case 70..<80: // score가 70이상 80미만일 때 아래 코드를 실행한다.
	    print("C 등급 입니다.")
	default: // score가 위에 조건문에서 true가 하나도 없었다면 아래 코드를 실행한다.
	    print("D 등급 입니다.")
}

7. 반복문

반복문은 배열이나 Dictionary 같은 Collection Type이나 범위를 반복적으로 접근할 때 사용한다.

배열은 동일한 데이터 타입의 값을 순서대로 저장하는 Collection Type중 하나다.
대괄호를 사용하여 배열을 만들 수 있다.

let array = [1, 2, 3, 4, 5] 
// [ ] 안에 데이터들을 넣으면 1,2,3,4,5가 들어가 있는 배열이 만들어진다.

["봄", "여름", "가을", "겨울"] // 봄, 여름, 가을, 겨울이 저장되어 있는 배열이다

for 반복문
for in 을 사용하면 배열(Collection Type)과 범위의 숫자를 반복할 수 있다.

// 컬렉션 타입에 대한 for in 반복문

let names = ["Anna", "Alex", "Brian", "Jack"] 

for name in names {
	print(name)
}

// 출력 값 
// Anna
// Alex
// Brian
// Jack

// 해석 

let names = ["Anna", "Alex", "Brian", "Jack"] // names 상수에 배열로 순서대로 "Anna", "Alex", "Brian", "Jack"을 넣습니다.

for name in names { // names 배열 안에 있는 값들을 반복하여 아래 코드블록을 실행합니다. name에 배열의 데이터를 넣는다.
	print(name)
}
// 숫자의 범위를 사용한 for in 반복문

for index in 0...5 {
	print(index)
}

// 출력 값
// 0
// 1
// 2
// 3
// 4
// 5 

// 한국어 번역
for index in 0...5 { 
  // 0이상 5까지 숫자를 index에 할당하며 반복 한다.
	print(index)
}

while 반복문

  • while 반복문은 조건이 true 인 동안 코드블록을 반복 실행한다.
  • 조건이 false가 되면 반복을 종료한다.
// while 뒤에 조건을 입력하여 사용합니다. 조건이 true이면 코드블록을 실행하고 false이면 코드블록이 실행되지 않고 다음으로 넘어간다. 
while 조건 {
		// 반복 실행할 코드
}

반복문에서 흐름제어를 도와주는 break / continue

break 문

  • 반복문이나 switch에서 즉시 종료하고, 코드블록을 빠져나올 때 사용된다.
  • 반복문에서 더이상 반복이 필요 없을 때 사용한다.
  • switch에서 특정 case에서 아무런 작업을 하지 않거나, 중간에 작업을 종료하고 싶을 때 사용한다.
// for 반복문에서 더이상 반복이 필요없는 경우

for age in 15...99 {
	print(age)
	
	if age >= 20 {
		break
	}
}

/*
출력값 : 
15
16
17
18
19
20
*/

// 한국말로 풀어보기
for age in 15...99 { 
	// 15이상 99까지 반복하여 코드블록을 실행한다. 현재 숫자는 age에 넣는다.
	print(age)
	
	if age >= 20 { // age가 20이상이면 코드블록을 실행한다.
		break        // 반복문을 종료한다.
	}
}
// while 반복문에서 더이상 반복이 필요없는 경우

var age = 15
while age < 100 {
	print(age)
	
	if age >= 20 {
		break
	}
	
	age += 1
}

/*
출력값 : 
15
16
17
18
19
20
*/

// 한국말로 풀어보기
var age = 15 // age라는 이름의 변수에 값 15를 할당한다.
while age < 100 { // age가 100 미만일 때 반복적으로 코드블록을 호출한다.
	print(age)
	
	if age >= 20 { // 만약 age가 20보다 크거나 같을 때 아래 코드블록을 실행한다.
		break // 반복문을 종료한다.
	}
	
	age += 1 // age에 1을 더한 값을 할당한다.
}

continue 문
반복문 안에서 현재 반복을 건너뛰고 다음 반복으로 넘어갈 때 사용

// for in 에서 continue를 사용하여 반복문을 건너뛰는 방법

for number in 1...5 {
	if number % 2 == 0 {
		continue 
	}
	
	print(number)
}

/*
출력 값
1
3
5
*/

// 한국말로 풀어보기

for number in 1...5 { // 1이상 5이하까지 반복합니다. 현재 숫자는 number에 넣는다.
	if number % 2 == 0 { // number 에서 2를 나눴을 때 나머지가 0이면 아래의 코드블록을 실행한다.
		continue // 다음 반복문으로 바로 이동합니다. 아래의 코드는 실행하지 않는다.
	}
	
	print(number)
}
// while에서 continue를 사용하여 반복문을 건너뛰는 방법

var number = 0 

while number < 5 {
    number += 1

    if number % 2 == 1 {
        continue
    }
    
    print(number)    
}

/*
출력 값 
2
4
*/

// 한국말로 풀어보기

var number = 0 // 변수 number에 0 값을 할당합니다.

while number < 5 { // number가 5 미만일 때 반복합니다.
    number += 1 // number에 1을 더한값을 할당합니다.

    if number % 2 == 1 { // number에 2를 나눈 나머지 값이 1일 때 코드블록을 실행합니다.
        continue
    }
    
    print(number)    
}
profile
이것저것 많이 해보고싶은 사람

0개의 댓글