Flutter for Beginners

Dart의 연산자

Records that rule memory 2025. 2. 20. 14:49
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