1. 변수
- 데이터를 저장하기 위한 공간
- 데이터를 담는 상자
- 변수에 데이터를 담고, 필요할 때 꺼내쓸 수 있음
- 프로그램 실행 중 값을 변경할 수 있음
- 변수명을 사용하여 구별
- 데이터 타입과 var, late 키워드를 사용하여 만듦
- late
- 값 할당 없이 변수 선언만 먼저 할 수 있음
- 변수가 사용되는 시점에 초기화
- 사용 전에는 반드시 값을 넣어줘야 함
- NonNullable. 즉, 변수 선언시 null을 사용하지 않는다.
2. 상수
- final과 const 키워드를 사용하여 만듦
- final
- const
- 컴파일 타임에 초기화
- 프로그램 실행 전과 후 상관없이 항상 값이 고정된 값
- ex, 원주율
- 프로그램 실행 중 값을 변경할 수 없음
3. 데이터 타입
- 변수에 할당할 수 있는 값의 유형
- 변수가 값을 담는 상자라면, 데이터 타입은 상자에 어떤 종류의 값을 담을지 정한다.
- 숫자형
- int : 정수 유형
- double
- 소수 유형
- 값을 정수로 할당해도 자동으로 소수점을 부여한다.
- num
- 정수, 소수 등의 모든 숫자 유형
- int와 double의 상위 클래스
- 문자형
- String
- String 변수명 = '값' or "값"
- 작은따옴표와 큰따옴표를 사용하여 값을 문자형으로 표현한다.
- 문자열
- $식별자, ${표현식}의 형태로 식별자와 표현식을 문자열에 끼워 넣을 수 있다.
- + 연산자를 통해 2개 이상의 문자열을 합칠 수 있다.
- ''', """를 사용하여 여러 줄로 문자열을 작성할 수 있다.
- 불리언형
- bool
- true or false로 판별되는 유형
- Dart는 대소문자를 구별하므로 True와 False는 참과 거짓을 의미하지 않는다.
4. null
- 아무 것도 들어있지 않음을 의미
- null을 허용하는 변수는 초기값이 설정되지 않으면 기본적으로 nul을 가진다.
5. 연산자
- 데이터를 조작하거나 처리하기 위해 사용하는 기호 또는 키워드
- 수학적인 계산뿐만 아니라 논리적인 비교, 데이터 조합 등 다양한 작업에 사용
- 산술 연산자 : 기본 연산(ex, 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지)을 수행할 때 사용
- + : 2개의 값을 더할 때 사용
- - : 하나의 값에서 다른 하나의 값을 뺄 때 사용
- * : 2개의 값을 곱할 때 사용
- / : 하나의 값에서 다른 하나의 값을 나눌 때 사용
- ~/ : 하나의 값에서 다른 하나의 값을 나눈 몫을 구할 때 사용
- % : 하나의 값에서 다른 하나의 값을 나눈 나머지를 구할 때 사용
- 비교 연산자 : 2개의 값을 비교할 때 사용
- == : 2개의 값이 같으면 true, 다르면 false
- != : 2개의 값이 다르면 true, 같으면 false
- > : 왼쪽 값이 오른쪽 값보다 크면 true, 작거나 같으면 false
- < : 왼쪽 값이 오른쪽 값보다 작으면 true, 크거나 같으면 false
- >= : 왼쪽 값이 오른쪽 값보다 크거나 같으면 true, 작으면 false
- <= : 왼쪽 값이 오른쪽 값보다 작거나 같으면 true, 크면 false
- 대입 연산자 : 값을 변수에 할당할 때 사용
- = : 오른쪽 값을 왼쪽에 할당
- ??= : 왼쪽 값이 null일 때 오른쪽 값 할당
- += : 2개의 값을 더한 값을 왼쪽에 할당
- -= : 왼쪽 값에서 오른쪽 값을 뺀 값을 왼쪽에 할당
- *= : 2개의 값을 곱한 값을 왼쪽에 할당
- /= : 왼쪽 값에서 오른쪽 값을 나눈 값을 왼쪽에 할당
- ~/= : 왼쪽 값에서 오른쪽 값을 나눈 몫을 왼쪽에 할당
- %= : 왼쪽 값에서 오른쪽 값을 나눈 나머지를 왼쪽에 할당
- 논리 연산자 : 참 또는 거짓으로 판별할 수 있는 표현식을 반전하거나 결합할 때 사용
- ! : 오른쪽에 있는 판별식을 반전
- || : 왼쪽과 오른쪽 판별식 중 하나라도 참이면 참, 모두 거짓이면 거짓
- && : 왼쪽과 오른쪽 판별식 모두 참이면 참, 하나라도 거짓이면 거짓
6. 조건문
- 프로그램의 흐름을 제어하기 위해 사용
- if문
- if (조건) { ... }
- 조건이 참이면 if문의 코드 블록이 실행되고, 거짓이면 실행되지 않음
- 조건에는 참 또는 거짓으로 판별될 수 있는 코드를 작성
- else if
- if문 else if (조건) { ... }
- if문의 조건이 거짓이면 else if문 조건을 검사
- 사용할 이유가 없다면 생략
- else
- if문 else { ... }
- if문과 else if문이 거짓일 때 실행할 코드를 작성
- 사용할 이유가 없다면 생략
- switch
- 어떤 특정 값에 대한 경우를 모두 생각해 주어야 할 때 사용
- switch (값) { case 값의조건 : ... break ...}
- 특정 조건에서 특정 동작을 희망하는 모든 경우를 case로 나열
- 그 외 경우는 default : ... 작성
- 조건 표현식
- 조건문 ? 표현식1 : 표현식2
- 조건문이 참이면 표현식1을, 조건문이 거짓이면 표현식2를 실행
- 표현식1 ?? 표현식2
- 표현식1이 null 값을 갖지 않으면 표현식1을, null 값을 가지면 표현식2를 실행
7. 반복문
- 어떤 코드를 여러 번 반복해서 실행하기 위해 사용
- 효율적인 코드 작성을 위해 사용
- for
- 반복할 특정 작업의 반복 횟수가 명확할 때 사용
- for (초기화식; 조건식; 증감식) { ... }
- 조건식이 거짓이면 코드블록을 빠져나온다.
- 초기화식의 변수는 상수로 선언할 수 없다.
- while
- while (조건식) { ... }
- 조건식이 참이면 코드 블록 실행하고, 거짓이면 빠져나온다.
- do while
- do { ... } while (조건식);
- do문의 코드를 한 번 실행한 후 while문의 조건식이 참이면 do문을 반복하고, 거짓이면 빠져나온다.
- for in
- for (변수 in 컬랙션명) { ... }
- 컬렉션의 요소들을 변수에 차례로 대입하며 for문 실행
- 변수는 상수로 선언 가능
- break : 반복문이 실행되고 있던 중에 이제 그만 실행했으면 할 때 사용
- continue : 반복문 실행 중 특정 조건인 경우에는 건너뛰고 싶을 때 사용
주석
- 코드 설명 작성할 때 사용
- 주석을 적극적으로 활용할 것
- 한 줄 주석(//) : 컴파일러는 //로 시작하는 줄에 있는 모든 것을 무시한다.
- 여러 줄 주석(/* */)
- 문서 주석(///) : 대괄호를 통해 코드의 특정 요소를 참조할 수 있다.