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
'Flutter' 카테고리의 다른 글
[Dart] 조건문 (if, if-else, switch) (0) | 2025.03.10 |
---|---|
[Dart] 데이터 타입 (0) | 2025.03.10 |
[Dart] 반복문(for, for-in, while, do while) (0) | 2025.03.07 |
[Dart] 변수 선언 (0) | 2025.03.07 |