[Dart] 연산자 (Operators)
1. 연산자 (Operators)
연산자란 변수나 값에 대해 연산을 수행하는 기호 또는 키워드입니다.
이를 활용하여 수학 연산, 비교, 논리 연산, 할당 등을 수행할 수 있습니다.
2. 산술 연산자
산술 연산자는 숫자를 계산하는 데 사용합니다.
| 연산자 | 설명 | 예제 |
| + | 덧셈 | a + b |
| - | 뺄셈 | a - b |
| * | 곱셈 | a * b |
| / | 나눗셈 (결과: double) | a / b |
| ~/ | 나눗셈 (결과: 정수) | a ~/ b |
| % | 나머지 연산 | a % b |
int a = 10;
int b = 3;
print(a + b); // 13
print(a - b); // 7
print(a * b); // 30
print(a / b); // 3.3333333333333335
print(a ~/ b); // 3 (정수 나눗셈)
print(a % b); // 1 (나머지)
3. 증감 연산자
증감 연산자는 변수의 값을 증가 또는 감소합니다.
| 연산자 | 설명 | 예제 |
| ++ | 덧셈 | a++ / ++a |
| -- | 뺄셈 | a -- / --a |
1) 전위 / 후위 차이
int a = 3;
print(++a); // ➝ 4 (먼저 증가 후 출력)
int b = 3;
print(b++); // ➝ 3 (출력 후 증가)
print(b); // ➝ 4
전위 연산자(++변수)는 먼저 증가시키고, 증가된 값을 반환하는 반면,
후위 연산자(변수++)는 먼저 기존 값을 반환한 후, 나중에 값을 증가합니다.
++a가 실행되면 a의 값이 먼저 증가합니다.
증가된 a의 값 4를 반환하고 print()에서 출력합니다.
print(b++)가 실행될 때, b의 현재 값 3을 먼저 반환하여 출력합니다.
그 후, b의 값이 1 증가(3->4) 합니다.
다음 줄에서 print(b)가 실행되면 증가된 값 4가 출력됩니다.
4. 비교 연산자
2개의 값을 비교하여 true 또는 false를 반환합니다.
| 연산자 | 설명 | 예제 |
| == | 두 값이 같으면 true, 다르면 false 반환 | a + b |
| != | 두 값이 다르면 true, 같으면 false 반환 | a - b |
| > | 왼쪽에 있는 값이 오른쪽에 있는 값보다 크면 true, 작거나 같으면 false 반환 | a * b |
| < | 왼쪽에 있는 값이 오른쪽에 있는 값보다 작으면 true, 크거나 같으면 false 반환 | a / b |
| >= | 왼쪽에 있는 값이 오른쪽에 있는 값보다 크거나 같으면 true, 작으면 false 반환 | a ~/ b |
| <= | 왼쪽에 있는 값이 오른쪽에 있는 값보다 작거나 같으면 true, 크면 false 반환 | a % b |
print(5 == 5); // true
print(5 != 3); // true
print(10 > 5); // true
print(5 < 10); // true
print(5 >= 5); // true
print(4 <= 6); // true
5. 타입 체크 연산자
변수의 타입을 확인하거나 변환할 때 사용합니다.
| 연산자 | 설명 | 예제 |
| is | 변수가 특정 타입인지 확인 (참이면 true) | a is int |
| is! | 변수가 특정 타입이 아닌지 확인 (참이면 true) | a is! String |
| as | 변수를 특정 타입으로 캐스팅(변환) | a as String |
여기서 캐스팅(형변환)은 하나의 특정 타입으로 지정되어 있는 값을 다른 타입으로 바꾸는 것입니다.
하지만 확실하게 형변환이 가능할 때만 사용해야 합니다.
예를 들어 문자열을 숫자형으로 형변환 하지는 못합니다.
int a = 2;
String s1 = 'hello';
print(a is String); // false (a는 int타입)
print(s1 is String); // true (s1은 String 타입)
print(a is! String); // true (a는 int타입)
print(s1 is! String); // false (s1은 String 타입)
print(a as double); // 2
print(s1 as double); // Type Error 발생
6. 할당 연산자
변수에 값을 저장하거나 업데이트할 때 사용합니다.
| 연산자 | 설명 | 예제 |
| = | 값 할당 | a = 10 |
| += | 더한 후 할당 | a += 5 (a = a + 5) |
| -= | 뺀 후 할당 | a -= 5 (a = a - 5) |
| *= | 곱한 후 할당 | a *= 5 (a = a * 5) |
| /= | 나눈 후 몫(실수) 할당 | a /= 5 (a = a / 5) |
| ~/= | 나눈 후 몫(정수) 할당 | a ~/= 5 (a = a ~/ 5) |
| %- | 나눈 나머지 할당 | a %= 5 (a = a% 5) |
int num = 10;
num += 5; // num = num + 5
print(num); // 15
num -= 3; // num = num - 3
print(num); // 12
num *= 2; // num = num * 2
print(num); // 24
num ~/= 4; // num = num ~/ 4
print(num); // 6
7. 논리 연산자 (Logical Operators)
참 또는 거짓으로 판별할 수 있는 표현식을 반전하거나 결합할 때 사용합니다.
| 연산자 | 설명 | 예제 |
| && | 논리 AND (둘 다 참일 때 true) | a && b |
| || | 논리 OR (둘 중 하나만 참일 때 true) | a || b |
| ! | 논리 NOT (부정) | !a |
bool a = true;
bool b = false;
print(a && b); // false
print(a || b); // true
print(!a); // false
8. 참고자료
https://dart.dev/language/operators
Operators
Learn about the operators Dart supports.
dart.dev