본문 바로가기
Flutter for Beginners

Dart의 연산자

by Andrew's Akashic Records 2025. 2. 20.
728x90

Dart

Dart의 연산자 (Operators)

Dart는 다양한 연산자를 제공하여 수학 연산, 비교, 논리 연산, 비트 연산, 조건 연산 등을 수행할 수 있습니다.
각 연산자의 종류와 사용 방법을 자세히 정리해 보겠습니다.

1. 산술 연산자 (Arithmetic Operators)

산술 연산자는 숫자 값을 계산하는 데 사용됩니다.

연산자 설명 예제
+ 덧셈 a + b
- 뺄셈 a - b
* 곱셈 a * b
/ 나눗셈 (결과: double) 10 / 3 → 3.3333
~/ 몫 (정수 나눗셈) 10 ~/ 3 → 3
% 나머지 10 % 3 → 1
void main() {
  int a = 10, b = 3;

  print(a + b);  // 13
  print(a - b);  // 7
  print(a * b);  // 30
  print(a / b);  // 3.3333
  print(a ~/ b); // 3
  print(a % b);  // 1
}

~/ 연산자는 정수 몫을 반환하며, / 연산자는 소수점까지 계산합니다.

2. 비교 연산자 (Comparison Operators)

비교 연산자는 두 값을 비교하여 true 또는 false를 반환합니다.

연산자 설명 예제
== 같음 a == b
!= 다름 a != b
> 크다 a > b
< 작다 a < b
>= 크거나 같다 a >= b
<= 작거나 같다 a <= b
void main() {
  int x = 10, y = 20;

  print(x == y); // false
  print(x != y); // true
  print(x > y);  // false
  print(x < y);  // true
  print(x >= y); // false
  print(x <= y); // true
}

비교 연산자는 bool 값을 반환하므로, 조건문에서 자주 사용됩니다.

3. 논리 연산자 (Logical Operators)

논리 연산자는 true 또는 false 값을 조합하여 논리적인 조건을 평가할 때 사용됩니다.

연산자 설명 예제
&& AND (모두 true일 때 true) (a > 5) && (b < 10)
`   `
! NOT (논리 반전) !(a > 5)
void main() {
  bool isFlutter = true;
  bool isDart = false;

  print(isFlutter && isDart);  // false
  print(isFlutter || isDart);  // true
  print(!isFlutter);           // false
}

&& 연산자는 둘 다 true여야 true를 반환하며, || 연산자는 하나라도 true면 true를 반환합니다.

4. 할당 연산자 (Assignment Operators)

할당 연산자는 변수에 값을 저장하거나, 다른 연산과 결합하여 값을 변경할 때 사용됩니다.

연산자 설명 예제
= 값 할당 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
void main() {
  int a = 10;

  a += 5; // a = 10 + 5
  print(a); // 15

  a -= 3;
  print(a); // 12

  a *= 2;
  print(a); // 24

  a ~/= 4;
  print(a); // 6

  a *= a;
  print(a); // 36
}

+=, -=, *=, /= 등은 값을 빠르게 갱신하는 데 유용합니다.

5. 조건 연산자 (Conditional Operators)

조건 연산자는 특정 조건에 따라 값을 반환할 때 사용됩니다.

연산자 설명 예제
? : 삼항 연산자 (조건 ? 참 : 거짓) a > b ? "크다" : "작다"
?? null 병합 연산자 x ?? y (x가 null이면 y 사용)
  • 삼항 연산자 예제
void main() {
  int a = 10, b = 5;

  String result = (a > b) ? "a가 크다" : "b가 크다";
  print(result);  // a가 크다
}
  • null 병합 연산자 예제
void main() {
  String? name;
  String displayName = name ?? "Unknown";

  print(displayName); // Unknown
}

?? 연산자는 변수가 null일 때 기본값을 설정하는 데 유용합니다.

6. 타입 검사 연산자 (Type Test Operators)

Dart에서는 변수가 특정 타입인지 확인하거나, 타입을 변환하는 연산자를 제공합니다.

연산자 설명 예제
is 특정 타입인지 확인 x is int
is! 특정 타입이 아닌지 확인 x is! String
as 타입 캐스팅 (형 변환) y as String
void main() {
  dynamic value = 10;

  print(value is int);  // true
  print(value is! String); // true

  var text = "Hello" as String;
  print(text);
}

is는 타입 검사를 할 때, as는 타입 변환을 할 때 사용합니다.

7. 비트 연산자 (Bitwise Operators)

비트 연산자는 정수를 이진수로 변환하여 비트 단위로 연산을 수행할 때 사용됩니다.

연산자 설명 예제
& AND 연산 a & b
` ` OR 연산
^ XOR 연산 a ^ b
~ 비트 반전 (NOT) ~a
<< 왼쪽 시프트 a << 2
>> 오른쪽 시프트 a >> 2
void main() {
  int a = 5;  // 0101
  int b = 3;  // 0011

  print(a & b);  // 0001 → 1
  print(a | b);  // 0111 → 7
  print(a ^ b);  // 0110 → 6
  print(~a);     // 비트 반전
}

비트 연산자는 비트 단위 연산이 필요할 때 사용됩니다.

728x90

'Flutter for Beginners' 카테고리의 다른 글

Dart의 함수(Function)와 람다(Lambda)  (0) 2025.02.21
Dart의 제어문  (0) 2025.02.20
Dart의 enum  (0) 2025.02.19
Dart의 컬렉션(Collection)  (0) 2025.02.19
Dart의 dynamic 변수 타입  (0) 2025.02.18