본문 바로가기
iOS

IOS 4주차

by asd135 2024. 9. 25.
728x90

자주 사용되는 연산자 순위

  1. 대입 연산자 (=)
    대입 연산자는 변수에 값을 할당하는 데 사용되며, 거의 모든 프로그램에서 빈번하게 사용됩니다[
  2. *산술 연산자 (+, -, , /)
    기본적인 수학 연산을 수행하는 데 사용되며, 프로그램에서 매우 자주 사용됩니다[
  3. 증감 연산자 (++, --)
    루프나 카운터에서 자주 사용되어 높은 사용 빈도를 보입니다[
  4. 비교 연산자 (==, !=, <, >, <=, >=)
    조건문이나 루프의 조건에서 자주 사용되어 높은 순위를 차지합니다[
  5. 논리 연산자 (&&, ||, !)
    조건문에서 복합 조건을 만들 때 자주 사용됩니다[
  6. 비트 연산자 (&, |, ^, <<, >>)
    특정 분야(예: 시스템 프로그래밍, 그래픽 프로그래밍)에서 자주 사용됩니다[
  7. 조건 연산자 (? :)
    간단한 조건문을 한 줄로 표현할 때 사용되며, 코드의 간결성을 위해 자주 활용됩니다[
  8. 멤버 접근 연산자 (., ->)
    객체 지향 프로그래밍에서 객체의 멤버에 접근할 때 매우 빈번하게 사용됩니다

Swift에 없는 연산자

x++, x-- // x+=1, x-=1

Swift 초창기에 있었지만 없어짐

 

==연산자 

값이 같은가?

 

===연산자

동일한 메모리 주소인가?

 

===연산자를 사용하는 언어

javascript, php, ruby 등

 

 

출처: smile han의 iOS기초

 

출처: smile han의 iOS기초

클래스: 내가 만드는 자료형 int, double 등 자료형은 이미 만들어진 자료형

객체: 클래스로 부터 만들어진 실체를 객체

인스턴스: 메모리에 올라온 객체를 인스턴스

 

다양한 언어의 객체 생성 방법

# Person 클래스가 여기에 정의되어 있다고 가정합니다.

person = Person("김철수", 30)
person.introduce()
<?php

// Person 클래스가 여기에 정의되어 있다고 가정합니다.

$person = new Person("김철수", 30);
$person->introduce();

?>
#include <iostream>

// Person 클래스가 여기에 정의되어 있다고 가정합니다.

int main() {
    Person person("김철수", 30);
    person.introduce();
    return 0;
}

 

Swift for문

for i in 0..<10 {
    print(i)
}

 

c스타일식 for문은 없어짐

for var i = 0; i < 10; i+=1 { // for i in 0..<10 로 수정해야 함
print(i)
}

 

let names = ["A", "B", "C", "D"]
for name in names[1...]{
    print(name)
}

인덱스 1부터 끝까지

 

let names = ["A", "B", "C", "D"]
for name in names[...1]{
    print(name)
}

처음부터 인덱스 1까지

 

출처: smile han의 iOS기초

var x = 10
if x > 5 {print("5보다 큽니다")}

조건문이 한줄이라도 중괄호를 써야함

출처: smile han의 iOS기초

 

출처: smile han의 iOS기초
출처: smile han의 iOS기초
출처: smile han의 iOS기초
출처: smile han의 iOS기초

 

Swift에서 많이 사용하는 제어문

  1. if-else 문
    조건에 따라 코드 블록을 실행하는 기본적인 조건문입니다.
  2. switch 문
    여러 가능한 케이스에 대해 코드를 실행하는 데 사용됩니다. Swift의 switch문은 매우 강력하고 유연합니다.
  3. for-in 루프
    배열, 범위, 문자열 등을 순회할 때 사용됩니다.
  4. while 루프
    조건이 참인 동안 코드 블록을 반복 실행합니다.
  5. repeat-while 루프
    다른 언어의 do-while 루프와 유사하며, 코드 블록을 최소한 한 번 실행한 후 조건을 검사합니다.
  6. guard 문
    조건을 먼저 검사하고, 조건이 거짓일 때 빠르게 함수나 메서드를 종료할 수 있게 해줍니다.
  7. break 문
    루프나 switch 문에서 즉시 실행을 중단하고 빠져나올 때 사용합니다.
  8. continue 문
    현재의 루프 반복을 중단하고 다음 반복으로 넘어갈 때 사용합니다.
  9. fallthrough 문
    switch 문에서 다음 case로 실행을 계속할 때 사용합니다.
  10. defer 문
    현재 코드 블록이 종료될 때 실행될 코드를 지정합니다.

Optional

var x : Int = 10
print(x)
var y : Int? = 20
print(y!)

변수 선언 할 때 ? 추가

사용 할 때는 ! 사용하여 사용가능

 

var x : Int
x = 10
print(x)
var y : Int?
print(y) //nil: 값이 없음

 

var y : Int?
print(y!) //nil: 값이 없음

crash 발생

 

var y : Int? = 20
y = y! + 1
print(y!)

 

Optional 변수는 ! 사용하여 변수를 풀어서 연산해야함

출처: smile han의 iOS기초

Optional 바인딩 

1

var x : Int?
x = 10
if x != nil {
   print(x!)
}
else {
    print("nil")
}

2

var x : Int?
if let x = x {
    print(x)
}

3

var x : Int?

if let x {
    print(x)
}

 

여러 옵셔널 값 동시에 바인딩

var x : Int?
var y : Int?
x = 10
y = 20
if let x, let y {
    print(x, y)
}

출처: smile han의 iOS기초

 

자동으로 푸는 Optional

출처: smile han의 iOS기초

var x : Int?
var y : Int!
var z : Int = 1
x = 10
y = 20
print(x, y, z)
z = x!
print(z)
z = y // ! 생략 가능
print(z)
if let x, let y {
    print(x, y)
}

출처: smile han의 iOS기초

var x : Int? // = 10
var y : Int = 0
y = x ?? 1 // nil 일 경우 오른쪽 값을 사용
print(x, y)

 

Swift Optional 푸는 법

  1. 옵셔널 바인딩 (if let / guard let)
    if let value = optionalValue {
    // value를 사용
    }
  2. 옵셔널 체이닝 (?.)
    let result = optionalValue?.property
  3. nil 병합 연산자 (??)
    let value = optionalValue ?? defaultValue
  4. 강제 언래핑 (!)
    let value = optionalValue!
  5. 암시적 언래핑 옵셔널 (Type!)
    var assumedString: String!
  6. switch 문을 이용한 옵셔널 패턴 매칭
    switch optionalValue {
    case .some(let value):
    print("값이 있습니다: $$value)")
    case .none:
    print("값이 없습니다")
    }
  7. map, flatMap, compactMap 함수
    let mappedArray = optionalArray?.map { $0 * 2 }
  8. guard 문
    guard let value = optionalValue else {
    return
    }
    // value를 사용

'iOS' 카테고리의 다른 글

iOS 7주차  (2) 2024.10.16
iOS 6주차  (1) 2024.10.09
iOS 5주차  (0) 2024.10.07
iOS 2주차  (0) 2024.09.11
iOS 1주차  (0) 2024.09.04