<프로그래밍 언어에서 가장 많이 사용하는 연산자>
- 대입 연산자 (=): 변수에 값을 할당하는 데 사용됩니다.
- 산술 연산자 (+, -, *, /, %): 기본적인 수학 연산을 수행합니다.
- 비교 연산자 (==, !=, <, >, <=, >=): 값들을 비교하여 불리언 결과를 반환합니다.
- 논리 연산자 (&&, ||, !): 논리적인 계산을 수행합니다.
- 증감 연산자 (++, --): 변수의 값을 증가시키거나 감소시킵니다.
<증가 연산자와 감소 연산자>
Swift에서는 ++와 -- 연산자가 없음.
- 증가: 변수 += 1
- 감소: 변수 -= 1
<비교 연산자>
== (값 비교):
- 두 값이 동일한지를 비교합니다.
=== (참조 비교):
- 두 클래스 인스턴스가 동일한 객체를 참조하는지를 비교합니다.
- 값이 아닌 메모리 주소를 비교합니다.
범위연산자
클래스로 부터 객체를 만드는 소스 예시
C++
#include <iostream>
using namespace std;
class Person {
public:
string name;
int age;
Person(string n, int a) : name(n), age(a) {}
};
int main() {
Person person("홍길동", 30);
cout << person.name << "의 나이는 " << person.age << "세입니다." << endl;
return 0;
}
Java
class Person {
String name;
int age;
Person(String n, int a) {
name = n;
age = a;
}
}
public class Main {
public static void main(String[] args) {
Person person = new Person("홍길동", 30);
System.out.println(person.name + "의 나이는 " + person.age + "세입니다.");
}
}
Python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("홍길동", 30)
print(f"{person.name}의 나이는 {person.age}세입니다.")
JavaScript
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
}
const person = new Person('홍길동', 30);
console.log(`${person.name}의 나이는 ${person.age}세입니다.`);
xcode 정렬: ctrl+i
1~9출력
for i in 0..<10 {
print(i)
}
for i in 0...9 {
print(i)
}
이름 9번 출력
for _ in 0...9 {//= 0; i < 10; i+=1 {
print("kdh")
}
// 0부터 9까지 반복
for i in 0...9 {
// i에 1을 더한 값을 출력하고 "kdh"라는 문자열을 붙임
print("\(i + 1): kdh")
}
xcode 주석: commend +/
<배열의 항목 접근>
// 문자열 배열을 정의
let names = ["A", "B", "C", "D"]
// 배열의 인덱스 1부터 끝까지 반복
for name in names[1...] {
// 현재 이름을 출력
print(name)
}
<if문>
// 변수 x를 10으로 초기화
var x = 10
// x가 5보다 큰지 확인
if x > 5 {
// 조건이 참일 경우 메시지를 출력
print("5보다 큽니다")
}
swift제어문 예시
1. 조건문
if 문
let number = 10
if number > 5 {
print("5보다 큽니다") // 조건이 참일 때 실행
}
if-else 문
let number = 3
if number > 5 {
print("5보다 큽니다")
} else {
print("5보다 작거나 같습니다") // 조건이 거짓일 때 실행
}
switch 문
let fruit = "사과"
switch fruit {
case "바나나":
print("바나나입니다.")
case "사과":
print("사과입니다.") // 해당하는 케이스 실행
default:
print("다른 과일입니다.")
}
2. 반복문
for 문
for i in 1...5 { // 1부터 5까지 반복
print(i) // 1, 2, 3, 4, 5 출력
}
while 문
var count = 0
while count < 3 {
print("Count는 \(count)") // Count는 0, 1, 2 출력
count += 1
}
repeat-while 문
var count = 0
repeat {
print("Count는 \(count)") // Count는 0, 1, 2 출력
count += 1
} while count < 3
3. 제어 흐름 변경
break 문
for i in 1...5 {
if i == 3 {
break // i가 3이면 반복문 종료
}
print(i) // 1, 2 출력
}
continue 문
for i in 1...5 {
if i == 3 {
continue // i가 3이면 다음 반복으로 넘어감
}
print(i) // 1, 2, 4, 5 출력
}
optional
(implicitly unwrapped)
var x : Int = 10
print(x)//10
var y : Int? = 20 //optional 변수 (자료형 뒤에 ?)
print(y!)//20 //optional 변수의 값을 저장할 경우 변수 뒤에 !해야됨/ 안하면 => 출력값: Optional(20)
nil(값이 없다)
var y : Int? // 초기값 없앰
print(y)//nil(값이 없다)
// 변수 x를 Int 타입으로 선언하고 10으로 초기화
var x: Int = 10
print(x) // x의 값을 출력: 10
// 변수 y를 Int? (옵셔널) 타입으로 선언하고 20으로 초기화
var y: Int? = 20
// y의 값을 강제로 언래핑하여 1을 더한 후 다시 y에 할당
y = y! + 1 // y의 값이 nil이 아닐 때만 안전하게 언래핑 가능
print(y) // y의 값을 출력: 21
<optional binding(여러 옵셔널 값 동시에 언래핑)>
var x : Int?
//x = 10
if x != nil {
print(x!)
}
else {
print("nil")//nil
}
var x : Int?
x = 10
if let x {
print(x)//10
}
var x : Int? = 10
var y : Int! = 20
var z : Int = 1
print(x,y,z)
z = x!
print(z)
z = y!
print(z)
if let x, let y {
print(x,y)
}
var x : Int? = 10
var y : Int! = 20
var z : Int = 1
print(x,y,z)
z = x! + 1
print(z)
z = y + 1
print(z)
if let x, let y {
print(x,y)
}
var x : Int? //= 10
var y : Int = 0
y = x ?? 1
print(x,y)//nil 1
swift에서 optional 푸는 방법을 많이 사용하는 순서
1. 강제 언래핑 (Force Unwrapping)
! 연산자를 사용하여 옵셔널 값을 강제로 언래핑합니다. 주의: 값이 nil일 경우 런타임 오류가 발생합니다
let optionalValue: Int? = 10
let value = optionalValue! // 강제 언래핑
2. 옵셔널 바인딩 (Optional Binding)
if let 또는 guard let을 사용하여 옵셔널 값을 안전하게 언래핑합니다. 값이 nil이 아닐 경우에만 실행됩니다.
if let unwrappedValue = optionalValue {
print(unwrappedValue) // 값이 있을 경우 실행
}
------
guard let unwrappedValue = optionalValue else {
return // 값이 nil일 경우 함수 종료
}
print(unwrappedValue)
3. nil 병합 연산자 (Nil Coalescing Operator)
?? 연산자를 사용하여 옵셔널 값이 nil일 경우 기본 값을 제공합니다.
let value = optionalValue ?? 0 // optionalValue가 nil이면 0을 사용
4. 옵셔널 체이닝 (Optional Chaining)
옵셔널 값의 속성이나 메소드를 호출할 때 사용합니다. 값이 nil이면 호출이 무시됩니다.
let length = optionalValue?.description.count // nil이면 length도 nil이 됨
5. 옵셔널 배열 (Optional Array)
배열의 요소로 옵셔널을 사용하고, compactMap을 이용하여 nil이 아닌 값만 필터링할 수 있습니다.
let optionalArray: [Int?] = [1, nil, 2, nil, 3]
let values = optionalArray.compactMap { $0 } // [1, 2, 3]
출처: 한성현 교수님 수업자료
'Swift' 카테고리의 다른 글
iOS 프로그래밍 기초 7주차 (0) | 2024.10.16 |
---|---|
iOS 프로그래밍 기초 6주 (0) | 2024.10.15 |
iOS프로그래밍 기초 5주차 (0) | 2024.10.03 |
iOS프로그래밍 기초 2주차 (0) | 2024.09.11 |
<1주차>iOS 프로그래밍 기초 (2) | 2024.09.04 |