Code/Flutter

Dart 변수와 타입, 연산자, 제어문, 조건문

하말 ⍺ 2023. 10. 7. 21:44
반응형

* 해당 글은 '나무위키'와 책'내일은 플러터'의 내용을 요약 정리 하였습니다.

변수와 타입

Dart에서 변수를 사용하기 위해서는 해당 변수의 데이터 타입을 지정해 줘야한다. 데이터 종류에 따라 다른 메모리 공간에 값을 저장하여 데이터를 효율적으로 관리, 사용하기 위함이다. Dart에서 지원하는 데이터 타입은 숫자형과 문자형 데이터 타입이다.

- 숫자형 : 정수형 int / 실수형 double

- 문자형 : 문자열 String

- 기타 : var 컴파일러가 변수의 타입을 추론하여 자동으로 할당한다. / bool 불리언 true false

 

연산자

  • && : and
  • || : or
  • ! : not / null 비활성화 의미. 해당 변수가 null이 아님을 개발자가 명시적으로 보증. 실제로 런타임에 null이 들어와도 진행하므로 개발자가 null이 안들어가는 것을 확인해야함.
  • ++ 증가 연산자 +=1을 의미
  • -- 감소 연산자 -=1을 의미. 그러나 연산자의 위치에따라 "++ i" 와 "i ++"이 코드에 적용되는 것이 다르다.
int = 1 ;
int j;

j = ++i; // i값을 2로 증가시킨 뒤에 j에 대입한다. i=2, j=2
j = i++; // j에 2를 대입(현재 i=2) i값을 3으로 증가시킨다. i=3 j=2

 

  • 삼항 연산자 : 조건식에 따라서 다른 값을 반환하는 연산자

(조건식) ? 값1 : 값2 의 형태. int e = ( a < b ) ? c : d 

=> a 가 b보다 작다면(조건식이 true) e는 c가 되고, a가 b보다 작지않다면 (조건식이 false) d가 된다.

이는 다중 조건으로 사용이 가능하다.

(조건식1) ? 값1 : (조건식2) ? 값2 : 값3 의 형태. int i = ( a < b ) ? c : ( d == e ) ? f : g

=> a가 b보다 작지 않다면 (조건식1 false ) 가 성립하면 뒤의 조건식2 ( d==e ) 부분으로 넘어가게된다.

 

제어문

  • import 'dart:io'; 출력 stdout.write(); 입력 stdin.readLineSync();

    print(); 와 stdout.write();의 차이가 무엇일까 궁금했는데 python 기준으론
    print(); 줄 바꿈하여 출력, 메모리가 적은 대신 상대적으로 느림
    stdout.write(); 이어서 출력, 메모리가 큰 대신 상대적으로 빠름
import 'dart:io';

void main() {
  print('프린트는 한줄 차지');
  stdout.write('stdout은 줄바꿈이 되지않아서 다음것이 이어서 나온다');
  print('stdout 뒤의 프린트. 심지어 띄어쓰기도 안되어있군');
}

/*
프린트는 한줄 차지
stdout은 줄바꿈이 되지않아서 다음것이 이어서 나온다stdout 뒤의 프린트. 심지어 띄어쓰기도 안되어있군
*/

 

조건문

  • if 
if (조건식1) {
	조건식1이 참
    } else if (조건식2) {
    조건식1이 거짓, 조건식2이 참
    } else {
    조건식1, 2가 모두 거짓일때
    }
  • switch
switch (변수) {
	case 값1:
    // 값1 과 일치하는 경우 실행 코드
    break; // break문은 switch을 빠져나온다. break가 없다면 다음 case 계속 진행
    case 값2:
    // 값2 과 일치하는 경우 실행 코드
    break;
    default: // if문의 else와 같은 역할. 선택적이며, 필요에 따라 사용 가능
    // 그외
    break;
    }
  • 왜 switch?
    - 가독성 : switch문이 여러개의 if-else 문 보다 가독성이 높다. 
    - 구조화 : switch 문은 구조화된 로직을 나타내는 데 유용. 여러 가지 선택사항이 있고, 각 선택사항에 대해 서로 다른 동작을 수행해야할 때 용이
    - 성능 : switch 문은 몇 가지 경우에서 if-else문보다 성능이 우수할 수 있다.

 

'Code > Flutter' 카테고리의 다른 글

dart 객체, 클래스, 인스턴스  (1) 2024.09.02
Dart 클래스와 객체, late, cascade(..)  (0) 2023.10.11
Dart 리스트, 맵  (1) 2023.10.09
Dart 반복문, 함수, 전역변수  (1) 2023.10.08
Dart 언어란?  (0) 2023.10.07