Foggy day
[Dart] 조건문(conditional) 본문
이번 포스팅에서는 If, Swtich, 삼항연산자를 알아보겠습니다.
1. If문
코딩할 때 가장 많이 사용되는 조건문입니다. 특정 값들을 비교해서 다른 이벤트나 UI를 연출하는 등 다양한 상황에서 사용됩니다.
키워드로는 if, else if, else 세가지가 있습니다. 시작은 무조건 if로 해야되지만 if 이후에 else if나 else를 사용하는 것은 자유입니다. else는 마지막에만 올 수 있고, else 이후에 else if나 if를 사용할 수 없습니다.
괄호는 true와 false의 값만 입력할 수 있고, true가 되면 해당 중괄호에 진입할 수 있습니다.
형태는 아래와 같습니다.
void conditionalIf() {
String value = "d";
if (value == "a") {
print('Conditional.conditionalIf value == "a"');
} else if (value == "b") {
print('Conditional.conditionalIf value == "b"');
} else if (value == "c") {
print('Conditional.conditionalIf value == "c"');
} else {
print('Conditional.conditionalIf a, b, c 중에 없습니다. 값은 $value 입니다.');
}
}
콘솔
Conditional.conditionalIf a, b, c 중에 없습니다. 값은 d 입니다.
변수 value에 d를 할당했습니다.
첫번째 조건문에서 a를 비교합니다. 그리고 만약 a가 아니라면 b를 비교합니다. 그리고 만약 b도 아니라면 c를 비교합니다. a, b, c 전부 아니라면 else 중괄호에 진입하게 됩니다.
이 경우에는 else 중괄호에 있는 프린트가 출력됩니다.
2. switch
switch문도 if문과 비슷합니다. 특정 값을 입력하고, 그 값과 동일한 경우를 체크합니다.
사용 형태는 아래와 같습니다.
void conditionalSwitch() {
String value = "e";
switch (value) {
case "a":
print('Conditional.conditionalSwitch a 입니다.');
break;
case "b":
print('Conditional.conditionalSwitch b 입니다.');
break;
case "c":
print('Conditional.conditionalSwitch c 입니다.');
break;
case "d":
print('Conditional.conditionalSwitch d 입니다.');
break;
default:
print(
'Conditional.conditionalSwitch a, b, c, d 중에 없습니다. 값은 $value 입니다.');
break;
}
}
콘솔
Conditional.conditionalSwitch a, b, c, d 중에 없습니다. 값은 e 입니다.
switch 키워드와 괄호에 체크할 변수를 입력해줍니다.
중괄호 안에서는 이와 같은 형태를 가집니다.
case {체크할 변수} :
코드 입력
break;
예제에서 첫번째로 value값이 a와 같은지 체크하고, 이후에 c, d값을 체크합니다. default는 아무 조건에도 해당되지 않을 때 진입하게 됩니다. 예제에서는 value값이 e기 때문에 default에 진입했습니다.
3. 삼항연산자(ternaryOperator)
삼항연산자는 간단한 if, else문과 같습니다. 소괄호와 중괄호를 사용하는 if,else문과 다르게 소괄호의 역할을 ? 가 대신 해주고, else의 역할을 : 가 대신 해줍니다.
:를 기준으로 왼쪽이 true일 경우 반환하는 값이고, 오른쪽이 false일 경우 반환하는 값입니다.
예제에서 a를 할당한 변수 value가 b와 같은지를 체크해주고 있습니다.
두 값이 다르기 때문에 : 의 오른쪽에 있는 false가 bool 타입의 result 변수에 할당됩니다.
void ternaryOperator() {
String value = "a";
bool result = value == "b" ? true : false;
// if (value == "a") {
// result = true;
// } else {
// result = false;
// }
print('Conditional.ternaryOperator result : $result');
}
콘솔
Conditional.ternaryOperator result : false
'Flutter > Dart 문법' 카테고리의 다른 글
[Dart] 함수 (0) | 2023.03.02 |
---|---|
[Dart] 반복문(for문) (0) | 2023.03.02 |
[Dart] Collection - List, Map, Set (0) | 2023.03.02 |
[Dart] 연산자, 형변환 (0) | 2023.03.02 |
[Dart] 변수(variable)와 상수(constant) (0) | 2023.03.02 |