[Flutter/Dart] 다트 사칙연산(산술 연산자) 사용하기

    플러터(Flutter)의 언어인 다트(Dart)에서도 다른 언어와 유사한 산술 연산자를 사용하고 있습니다. 

     

    산술 연산자 의미

    산술 연산자를 말 그대로 간단한 계산을 위한 연산자를 뜻합니다. 우리가 흔히 사칙연산이라는 말을 사용하는데요 산술 연산자는 사칙 연산을 위한 연산자라 생각하시면 됩니다.

     

    [Flutter/Dart] 다트 사칙연산(산술 연산자) 사용하기


    산술 연산자 명령어 리스트

    연산자 의미 비고
    + 값을 더한다  
    - 값을 뺀다  
    * 값을 곱한다  
    / 값을 나눈다 실수형(double)으로 반환
    ~/ 나눈 몫을 구한다 정수형(int)으로 반환
    % 나눈 나머지를 구한다 정수형(int)으로 반환

     

    산술 연산자 예시

    산술 연산자 예시 코드

    void main(List<String> arguments) {
      int a = 10;
      int b = 3;
    
      var add = a+b;
      var minus = a-b;
      var multiply = a*b;
      var divide = a/b;
      var quotient = a~/b;
      var remainder = a%b;
    
      print("$a 더하기 $b 는? $add");
      print("$a 빼기 $b 는? $minus");
      print("$a 곱하기 $b 는? $multiply");
      print("$a 나누기 $b 는? $divide");
      print("$a 나누기 $b 의 몫은? $quotient");
      print("$a 나누기 $b 의 나머지는? $remainder");
    }

     

    산술 연산자 결과

    10 더하기 3 는? 13
    10 빼기 3 는? 7
    10 곱하기 3 는? 30
    10 나누기 3 는? 3.3333333333333335
    10 나누기 3 의 몫은? 3
    10 나누기 3 의 나머지는? 1

     

     

    다트 언어와의 특이점

    자바(Java)와 같은 언어는 몫을 별도로 제공해주지 않는데 몫이 있는 것이 특이점 입니다. 일반적으로 자바의 경우 몫은 나눈 값에서 소수점을 절삭하는 정도지만,  다트는 몫을 구하는 명령어가 별도로 있기 때문에 타입이 고정적으로 리턴이 됩니다. 

     

    예를 들어 정수형에 소수점을 절삭하는 형태로 리턴을 받고 싶다면 몫을 구하는 형태로 변경하면 될 것이고, 일반적인 형태로 받고 싶으면 나누기를 하면 됩니다. 위 예시에서는 var 형태로 모두 변경하였지만, 아래와 같이 나누기에 int 형으로 변경하거나 나머지 등에도 double 형으로 변경이 되지 않습니다.

     

    void main(List<String> arguments) {
      int a = 10;
      int b = 3;
    
      int divide = a/b;  
    
      print("$a 나누기 $b 는? $divide");
    }

     

    위와 같이 나누기에 int형으로 변경 시, 아래와 같은 에러가 표시 됩니다.

    bin/dart.dart:5:17: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
    int divide = a/b;

     

    아래와 같이 double 형으로 하여도 동일하게 에러가 표시 됩니다.

    double quotient = a~/b;
    double remainder = a%b;
    bin/dart.dart:6:22: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
      double quotient = a~/b;
                         ^
    bin/dart.dart:7:23: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
      double remainder = a%b;
    반응형

    댓글

    Designed by JB FACTORY