Swift의 반복문에는 for문, while문, repeat~while문이 있다.
Objective-C는 비슷하게 for문, while문, do~while문이 있다.
일정한 범위의 값에 대해 반복할 때 사용한다.
for (초기화; 조건; 증감) {
실행구문
}
for (int i = 1; i <= 5; i++) {
NSLog(@"%d", i);
}
// 배열
NSArray *array = @[@"Apple", @"Banana", @"Cherry"];
for (int i = 0; i < [array count]; i++) {
NSLog(@"%@", [array objectAtIndex:i]);
}
for (NSString *fruit in array) {
NSLog(@"%@", fruit);
}
조건이 참인 동안 계속 반복한다.
int i = 1;
while (i <= 5) {
NSLog(@"%d", i);
i++;
}
Swift의 repeat-while문과 동일하게 최소한 한 번 실행한 뒤 조건을 평가하여 반복할지 결정한다.
int i = 1;
do {
NSLog(@"%d", i);
i++;
} while (i <= 5);
일반적으로 for문을 사용한다.
for (; ;) {
// 무한 루프에서 반복할 코드
}
빠른 열거를 사용하면 전통적인 for 루프보다 더 간결하고 읽기 쉽게 각 요소에 접근할 수 있고, 코드의 가독성과 유지보수성을 높일 수 있다.
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 배열 생성
NSArray *array = @[@"Apple", @"Banana", @"Cherry"];
// 빠른 열거를 사용하여 배열의 요소를 순회
for (NSString *fruit in array) {
NSLog(@"Fruit: %@", fruit);
}
}
return 0;
}
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 딕셔너리 생성
NSDictionary *dictionary = @{
@"name": @"John",
@"age": @30,
@"city": @"New York"
};
// 빠른 열거를 사용하여 딕셔너리의 키와 값을 순회
for (NSString *key in dictionary) {
NSString *value = [dictionary objectForKey:key];
NSLog(@"%@: %@", key, value);
}
}
return 0;
}
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
// 집합 생성
NSSet *set = [NSSet setWithObjects:@"Red", @"Green", @"Blue", nil];
// 빠른 열거를 사용하여 집합의 요소를 순회
for (NSString *color in set) {
NSLog(@"Color: %@", color);
}
}
return 0;
}
조건문은 Swift와 동일하게 if문, if~else문, if~else if문, switch문이 있다. 삼항 연산자를 사용할 수도 있다. 하지만, Objective-C는 Swift의 guard문이 없다. if문으로 비슷하게 사용해야한다.
int number = 10;
if (number > 5) {
NSLog(@"Number is greater than 5");
}
int number = 3;
if (number > 5) {
NSLog(@"Number is greater than 5");
} else {
NSLog(@"Number is 5 or less");
}
int number = 7;
if (number > 10) {
NSLog(@"Number is greater than 10");
} else if (number > 5) {
NSLog(@"Number is greater than 5 but less than or equal to 10");
} else {
NSLog(@"Number is 5 or less");
}
int number = 3;
switch (number) {
case 1:
NSLog(@"Number is 1");
break;
case 2:
NSLog(@"Number is 2");
break;
case 3:
NSLog(@"Number is 3");
break;
default:
NSLog(@"Number is something else");
break;
}