- 연산자를 사용하면 애플리케이션의 동작과 데이터 처리를 조작할 수 있다.
- 플러터에서는 산술 연산자, 증감 연산자, 논리 연산자, null관련 연산자, 비교 연산자, 논리 연산자 등이 있다.
- +, -, *, /, % 와 같은 산술 연산자를 사용하여 숫자의 덧셈, 뺄셈, 곱셈, 나눗셈을 수행할 수 있다.
void main() {
double number = 2;
print(number + 2); // number 값에 2를 더한 값 출력
print(number - 2);
print(number * 2);
print(number / 2); // 2로 나눈 몫을 출력
print(number % 3); // 3으로 나눈 나머지 출력
}
- 전위 증감 연산자 : ++변수, --변수 를 사용하며, 연산자에 따라 값을 증가 또는 감소 시킨 후 값을 반환한다.
- 후위 증감 연산자 : 변수++, 변수-- 를 사용하며, 값을 먼저 반환하고 연산자에 따라 값을 증가 또는 감소 시킨다.
print(++number);
시 ( )의 증감 값을 변수에 저장한다.void main() {
int x = 10;
print(x); // 10
print(++x); // x 에 1만큼 증가한 값을 변수에 저장 후 출력
print(x++); // x 를 출력 후 1만큼 증가한 값을 변수에 저장
print(x);
}
- AND 연산자 (&&): 모든 조건이 모두 true일 때만 전체 조건이 true가 된다.
void main() {
bool result1 = 12 > 10 && 1 > 0;
print(result1);
bool result2 = 12 < 10 && 1 > 0;
print(result2);
}
- OR 연산자 (||): 조건 중 하나 이상이 true일 때 전체 조건이 true 가 된다.
void main() {
bool condition1 = true;
bool condition2 = false;
bool result = condition1 || condition2;
print(result);
}
- NOT 연산자 (!): 조건을 부정하여 반대의 값을 반환한다.
void main() {
bool condition = true;
bool result = !condition;
print(result);
}
- 타입 뒤에 '?' 를 추가하면 Null 값을 가질 수 있다.
void main() {
double? number; // 자동으로 null 값 지정
print(number);
number ??= 3; // ??를 사용하면 기존 값이 null일 때만 저장
print(number);
number ??= 4; // null이 아니므로 3이 유지됨
print(number);
}
경고 메시지는 number 변수의 타입이 nullable하지 않은 double이기 때문에 null 병합 할당 연산자가 올바르게 동작하지 않는다는 것을 알려주고 있다.
값 비교 연산자는 두 값의 내용을 비교하여 결과를 반환한다.
- 큰 비교 연산자 (>): 왼쪽 피연산자가 오른쪽 피연산자보다 큰지 비교한다. 왼쪽 값이 크면 true를 반환하고, 그렇지 않으면 false를 반환한다.
- 작은 비교 연산자 (<): 왼쪽 피연산자가 오른쪽 피연산자보다 작은지 비교한다. 왼쪽 값이 작으면 true를 반환하고, 그렇지 않으면 false를 반환한다.
- 크거나 같은 비교 연산자 (>=): 왼쪽 피연산자가 오른쪽 피연산자보다 크거나 같은지 비교한다. 왼쪽 값이 크거나 같으면 true를 반환하고, 그렇지 않으면 false를 반환한다.
- 작거나 같은 비교 연산자 (<=): 왼쪽 피연산자가 오른쪽 피연산자보다 작거나 같은지 비교한다. 왼쪽 값이 작거나 같으면 true를 반환하고, 그렇지 않으면 false를 반환한다.
- 동등 비교 연산자 (==): 두 값이 동일한지 비교한다. 값이 같으면 true를 반환하고, 값이 다르면 false를 반환한다.
- 부등 비교 연산자 (!=): 두 값이 다른지 비교한다. 값이 다르면 true를 반환하고, 값이 같으면 false를 반환한다.
void main() {
int num1 = 1;
int num2 = 2;
print(num1 > num2);
print(num1 < num2);
print(num1 >= num2);
print(num1 <= num2);
print(num1 == num2);
print(num1 != num2);
}
is 키워드를 사용하면 변수의 타입을 비교할 수 있다.
- 타입 비교 연산자 (is): 변수의 타입을 비교하여 결과를 반환한다. 왼쪽 피연산자가 오른쪽 피연산자의 타입과 일치하면 true를 반환하고, 일치하지 않으면 false를 반환한다.
- 타입 비교 부정 연산자 (is!): 변수의 타입을 비교하여 결과를 반환한다. 왼쪽 피연산자가 오른쪽 피연산자의 타입과 일치하지 않으면 true를 반환하고, 일치하면 false를 반환한다.
void main() {
int num1 = 1;
print(num1 is int);
print(num1 is String);
print(num1 is! int);
print(num1 is! String);
}
- 연산자를 사용하면 애플리케이션의 동작과 데이터 처리를 조작할 수 있다.
- 플러터에서는 산술 연산자, 증감 연산자, 논리 연산자, null관련 연산자, 비교 연산자, 논리 연산자 등이 있다.
- if문, if else문, else문의 순서대로 괄호 안에 작성한 조건이 참이면 해당 조건의 코드 블록이 실행된다.
if 문의 기본구조
if (조건식) { // 조건식이 참인 경우 실행할 코드 } else { // 조건식이 거짓인 경우 실행할 코드 }
응용 구조
if (조건식) { // 조건식이 참인 경우 실행할 코드 } else if{ // 조건식이 참인 경우 실행할 코드 } else { // 조건식이 거짓일 경우 실행할 코드 }
void main() {
int num1 = 1;
int num2 = -1;
int num3 = 0;
if (num1 > 0){
print('num1은 양수입니다.');
} else if (num1 < 0){
print('num1은 음수입니다.');
} else {
print('num1은 0 입니다.');
}
if (num2 > 0){
print('num2은 양수입니다.');
} else if (num2 < 0){
print('num2은 음수입니다.');
} else {
print('num2은 0 입니다.');
}
if (num3 > 0){
print('num3은 양수입니다.');
} else if (num1 < 0){
print('num3은 음수입니다.');
} else {
print('num3은 0 입니다.');
}
}
- 주어진 변수 또는 표현식의 값을 평가하고, 값에 따라 조건에 맞는 case 블록을 수행한다.
- break 키워드를 사용하면 switch 문 밖으로 나갈 수 있다.
switch 문의 기본구조
if (조건식) { // 조건식이 참인 경우 실행할 코드 } else { // 조건식이 거짓인 경우 실행할 코드 }
enum Status {
approved,
pending,
rejected,
}
void main() {
Status status = Status.approved;
switch (status){
case Status.approved:
print('승인 상태');
break;
case Status.pending:
print('대기 상태');
break;
case Status.rejected:
print('거절 상태');
break;
default:
print('알 수 없음');
}
print(Status.values); //Enum의 모든 수를 리스트로 반환
}
- for 문은 초기화 구문을 실행한 후에 조건식을 평가한다.
- 초기화: 반복문이 시작될 때 한 번 실행되는 초기화 구문이며, 반복 변수의 초기값을 설정한다.
- 조건식: 반복문이 실행될 조건을 지정하는 부분이며, 조건식이 참인 경우 코드 블록이 실행, 거짓일 경우 종료된다.
- 증감식: 반복문이 한 번 실행된 후에 반복 변수를 증가 또는 감소시키는 구문이며, 반복 변수를 업데이트 하는 역할을 한다.
for 문의 기본구조
for (초기화; 조건식; 증감식) { // 반복적으로 실행할 코드 }
void main() {
for (var i = 1; i <= 5; i++) {
print(i);
}
}
다트 언어에서는 For in 패턴의 for문도 제공한다.
List의 모든 값을 순회할 때 사용한다.void main() { List<int> numberlist = [1,2,3]; for (int num in numberlist){ print(num); } }
- while문은 반복문 진입 전에 조건을 평가한다.
- do while문은 반복문 진입 후에 조건을 평가한다.
while 문의 기본구조
while (조건식) { // 조건식이 참인 동안 실행할 코드 }
void main() {
int total = 1;
while (total < 10) {
total += 1;
}
print(total);
}
do while 문의 기본구조
do { // 실행할 코드 } while (조건식);
void main() {
int total = 0;
do {
total += 1;
} while(total < 10);
print(total);
}