반응형

이번 스터디에서는 연산자를 알아보려고 한다.

우리가 익히 알고 있는 사칙연산(+,-,*,/)와 프로그램에서 사용하는 대소(크기)비교,

논리연산 등을 다뤄보려 한다.

자세한건 소스를 실행하면서 알아보고, 준비물인 웹컴파일러는 아래 포스팅에 포함되어 있다.

 

Dart언어공부-01.Hello World

Flutter가 요즘 핫하게 올라오면서, Flutter의 주력 언어(다른언어도 가능함)인 Dart를 공부해보려 한다. 간단하게 Flutter란? Google에서 개발하고 Mobile World Congress 2018에서 최초 베타..

masswhale.tistory.com


1. 기본 사칙연산

void main() {
	//기본 사칙연산
    //int(정수형)타입의 number라는 이름의 변수 선언 및 2라는 값으로 초기화
    int number = 2;
    
    //사칙연산을 실행하여 결과를 알아보자
    print(number + 2);
    print(number - 2);
    print(number * 2);
    print(number / 2);

}

실행결과

4
0
4
1

2. 사칙연산 중 나누기에서는 몫만 존재하는 것이 아닌, 나머지도 존재한다. 

void main() {
	int number = 2;
    //해당 변수를 특정값으로 나누었을때, 나머지를 알고싶다면 % 연산자(기호)를 사용한다.
    //결과값이 0이라면 나눈값의 배수인것을 확인할 수 있다.
    print(number % 2);
    print(number % 3);
}

실행결과

0
2

3. 증가/감소 연산

void main() {
	int number = 2;
    
    //선언된 변수 뒤에 ++연산을 사용하여 값을 증가시킨다.
    //1씩증가 및 감소하며, String 타입의 변수에는 적용되지 않는다.
    
    //증가시키려 할때.
    number++;
    print(number);

	//감소시키려 할때.
    number--;
    print(number);

}

실행결과

3
2

4. null값인 경우 처리(표현)방법

void main(){
	int number2;
    
    //number2 라는 int타입의 변수 선언 후, 출력하면 숫자값의 선언(초기화)이 되지 않았기때문에
    //null이라는 값이 출력된다.    
    print(number2);
    
    //하지만 아래와 같은 표현방법으로 null인경우 4로 할당하도록 하면
    number2 ??= 4;
    
    //지정한 4가 추출된다.
    print(number2);
    
}

실행결과

null
4

5. 이미 할당(초기화)된 값에 추가로 사칙연산하는 방법들

void main(){
	int number4 = 2;
    //number4라는 변수에 2라는 값을 할당 후,
    //1을 더하는 방법은 아래와 같은 방법이 있다.    
    number4 = 2+1;
    
    //하지만 아래 연산기호를 이용하여 표현할수도 있다.
    //기존 변수에 1을 더하여 할당한다는 의미이다.
    number4 += 1;
    
    print(number4);
    
    //뺄셈을 할땐, 더하기기호와 반대로 사용하면 된다.
    
    number4 -= 1;
    print(number4);
    
    //알아본 김에 곱셈, 나눗셈도 알아보자.
    //같은 방식으로 연산자(기호)만 변경하여, 작성한다.
    number4 *= 2;
    print(number4);
    
    //아래는 나눗셈을 할때인데, 위와같이 단순하게 number4 /=2; 라 할경우엔 오류가 발생한다.
    //나눗셈은 몫과 나머지를 발생시키기 때문에 정수형인 int로 처리할수 없도록
    //Dart에서 정해져있다. 따라서 나눗셈 연산을 시도할땐, int가 아닌 범위가 더 큰double로
    //선언하여 처리해야 한다.
    //편의상 number44라는 변수를 사용하여 예제를 보자
    
    double number44 = 2;
    number44 /= 2;
    print(number44);
}

실행결과

4
3
6
1

6. 주어진 값을 비교하는 연산자

주어진 1개 이상의 값을 연산하여 true인지 false인지 boolean형 값을 구해보자

void main(){
	int _number1 = 1;
    int _number2 = 2;
    
    //ture false검증
    //대,소 비교 연산을 통해 두개의 값이 맞는지 틀린지 값을 구해낸다.  > , <
    //true or false로 표현된다.
    print(_number1 < _number2);
    print(_number1 > _number2);
    
    //또한 초과,미만 표현이 아닌 이상,이하 표현도 가능하다.   >= ,  <= 
    //이퀄스 기호를 추가하여 작성한다.
    print(_number1 <= _number2);
    print(_number1 >= _number2);
    
    
    //대,소만 있는것이 아닌 '같다'와 '같지 않다'도 확인할 수 있다.  ==,  !=
    print(_number1 == _number2);
    print(_number1 != _number2);
    
}

실행결과

true
false
true
false
false
true

7. 타입비교

이번에는 선언된 변수가 특정타입이 맞는지 검증하는 연산자를 사용해보자

void main(){
  int _numbers1 = 1;
  //int형으로 선언된 _numbers1의 타입을 확인하는 연산자를 사용해보자.
  //맞는지, 아닌지를 묻는 연산이기 때문에 true or false값을 반환하며
  //자료형 별로 질의를 할수 있다. 
  //변수 is 타입질의 형태로 사용한다.
  
  print(_numbers1 is int);
  print(_numbers1 is String);
  print(_numbers1 is bool);
  //맞는지만 물어볼수 있는것이 아니라, 맞지않은지도 느낌표(!)를 사용하여 질의할수 있다.
  print(_numbers1 is! String);
}

실행결과

true
false
false
true

8. 논리비교

약간 헷갈릴 수 있는데, 6번에서 사용한 대소비교 등이 두개이상이 합쳐졌다고 할수있다.

void main() {
  
  //&&연산자를 기준으로 좌우측의 두 조건이 만족할때 true가 표현된다.
  result = 12 > 10 && 1 < 0;
  print(result);  
  
  //위 &&연산자와는 반대로 || 연산자는 좌우 둘중하나의 조건만 맞으면 true가 표현된다.
  result = 12 > 10 || 1 < 0;
  print(result);  
  
}

실행결과

false
true

총 8개의 연산자를 스터디해보았다.

다른 언어들과 다를것이 없어서, 이미 다른언어를 사용중이거나 배워본 사람은 한번 훑허보면 될듯싶다. 

Dart 연산자 스터디 끝.

반응형

+ Recent posts