1. if 문
- if (조건) { 실행; } 으로 Java와 유사하게 기본적인 if 문을 작성할 수 있다.
Ex> int num = 4 ; if(num - 2 == 2){ print('조건문 실행');}
2. if - else 문
- if( 조건 ){ 실행; }else{ 실행; } 으로 Java와 유사하게 기본적인 if-else 문을 작성할 수 있다.
- it 뒤 조건이 참일 때, if문 뒤에 {} 안에 문장 실행 조건이 거짓일 때, else 뒤 {} 안의 문장 실행된다.
Ex> int num = 4 ; if(num - 2 == 3){ print('맞습니다');}else{ print('틀렸습니다'); }
3. if - else if - else 문
- if( 조건 ){ 실행; }else if( 조건 ){ 실행; } else { 실행; } 처럼 if 와 else if, else 를 같이 쓸 수 있다.
- 첫번째 if 문의 조건을 실행한 후, 거짓일 경우 두번째 if 문이 실행된다. 두번째 if 문도 거짓일 때에는 else 문이 실행된다. 각 if 문 뒤에 조건이 참인 경우에는 뒤에 { 실행; } 부분만 실행된 후 이후 else if/ else 문은 실행되지 않는다.
Ex> int num = 4 ; if(num == 3){ print('num은 3 입니다');}else if(num == 4){ print('num은 4 입니다'); } else {print('num은 3과 4가 아닙니다');}
void main(List<String> arguments) {
// if 문 단독사용
if (1 == 1) {
print('if문 실행');
}
// if-else 문 단독사용
if (1 == 2) {
} else {
print('else문 실행');
}
// if - else if - else 문 단독사용
if (1 == 2) {
} else if (2 == 2) {
print('else if 문 실행');
} else {
}
}
4. switch 문
- switch( 변수 ) { case 값1: 실행문; break; case 값2: 실행문; break; default: 실행문;} 처럼 사용할 수 있다.
Ex> int num = 2; switch(num + 1) { case 1 : print('결과는 1입니다'); case 2 : print('결과는 2입니다'); case 3 : print('결과는 3입니다'); default : print('결과는 1,2,3이 아닙니다');}
- switch 문 초창기 C 언어에서 else if 를 지원하지 않을 때, if 문이 다중으로 중첩되면서 가독성이 떨어져( {} 가 많아서 어디가 어딘지 혼동됨, else 조건을 본인이 생각하는 if 문 말고 다른 부분에 겹쳐짐, 타이핑이 까다로움 ) switch 문을 사용하였지만 이후 다른 언어 에서 else if 문을 지원하면서 동일하지만 다른 표현 의 문법으로 남음
- 메뉴 선택 1,2,3,4,5 등 특정 case가 정확하게 정해진 경우 else if 문 보다 switch 문이 작성하기 편하기 때문에 특정한 경우 사용하는 것이 좋다. ( 컴파일러에 따라 else if 문보다 switch 문의 속도가 더 빠른 경우도 있음; if 조건문은 기본적으로 프로그램 실행중 실행이 분기되기 때문에 분기가 일어나면 속도가 저하된다. 그러므로 특정 컴파일러에서는 switch 문과 else if 문에서 다른 실행 방식이 되는 경우 성능의 차이가 발생한다.)
void main(List<String> arguments) {
int num = 3;
switch (num) {
case 1:
break;
case 2:
break;
case 3:
print('num이 3 이므로 실행');
break;
default:
print('if 문의 else 와 유사');
break;
}
if (num == 1) {
} else if (num == 2) {
} else if (num == 3) {
print('num이 3 이므로 실행');
} else {
print('switch 문의 default 와 유사');
}
}
'Flutter > Dart' 카테고리의 다른 글
Dart 클래스(class) (0) | 2023.04.19 |
---|---|
Dart 함수(function, main function) (2) | 2023.04.19 |
Dart 반복문 ( for, while, do while, continue, break ) (0) | 2023.04.19 |
Dart 자료구조 리스트(List), 셋(Set), 맵(Map) (0) | 2023.04.19 |
Dart 자료형 및 변수 (0) | 2023.04.19 |