Dart의 다양한 반복문에 대해서 알아보겠습니다.
1. for 반복문
모든 언어에서 지원하는 기본적인 for문입니다.
Syntax
for문은 아래와 같은 문법으로 특정 작업을 반복할 수 있습니다.
for(initialization; condition; increment/decrement){
// Do something
}
Example
아래 예제는 Index 0부터 4까지 반복하는 예제입니다.
void main() {
for (int i = 0; i < 5; i++) {
print("Hello World!");
}
}
Output:
Hello World!, index: 0
Hello World!, index: 1
Hello World!, index: 2
Hello World!, index: 3
Hello World!, index: 4
감소 연산자(--
)를 사용하여 아래와 같이 Index를 반대로 설정하여 반복할 수도 있습니다.
void main() {
for (int i = 5; i > 0; i--) {
print("Hello World!, index: $i");
}
}
Output:
Hello World!, index: 5
Hello World!, index: 4
Hello World!, index: 3
Hello World!, index: 2
Hello World!, index: 1
2. while 반복문
while
문도 for문과 거의 동일하게 사용할 수 있습니다.
Syntax
condition이 true이면 while문 안의 코드를 반복하며, false이면 루프를 벗어나 반복을 중단합니다.
while (condition) {
// do something
}
Example
아래와 같이 1부터 5까지 반복하는 코드를 구현할 수 있습니다. 증감/감소 연산자는 while 안에서 수행해야 합니다.
void main() {
int i = 1;
while (i <= 5) {
print(i);
i++;
}
}
Output:
1
2
3
4
5
3. do while 반복문
while
과 거의 비슷하지만 동작하는 순서가 약간 다릅니다.
Syntax
- condition의 조건을 확인하지 않고 먼저
do
안의 코드를 수행합니다. - 그리고 만약 condition이 true이면
do
의 코드를 반복하며, false이면 루프를 벗어나 반복을 종료합니다.
do{
// do something
} while(condition);
Example
아래 예제는 반복문을 사용하여 5부터 1까지 출력합니다.
- i는 5부터 시작하며, i가 0이 될 때 반복문이 종료됨
void main() {
int i = 5;
do {
print(i);
i--;
} while (i >= 1);
}
Output:
5
4
3
2
1
하지만 아래 예제는 i가 0이며, while의 condition이 false가 됩니다. 하지만 while 조건을 체크하지 않고 do의 구문을 한번 수행하기 때문에 0이 출력되고, 그 다음에 반복문이 종료됩니다.
void main() {
int i = 0;
do {
print(i);
i--;
} while (i >= 1);
}
Output:
0
4. forEach 반복문
List.forEach(function)
은 List의 모든 요소에 대해서 function 함수를 수행합니다.
아래 예제는 리스트의 모든 요소들을 출력합니다.
(name) => print(name)
는 람다식으로 요소가 인자 name으로 전달됨
void main() {
List<String> names=['Alex', 'John', 'Hazard'];
names.forEach((name) => print(name));
}
Output:
Alex
John
Hazard
5. for in 반복문
for variable in Iterator
는 Iterator의 모든 요소를 반복하는 반복문입니다.
- Iterator의 요소들이 variable로 전달됨
아래와 같이 List의 모든 요소를 for in
으로 모두 출력할 수 있습니다.
void main() {
List<String> names=['Alex', 'John', 'Hazard'];
for (String name in names) {
print(name);
}
}
Output:
Alex
John
Hazard
Related Posts
- Flutter/Dart - Future.delayed() 사용 방법
- Flutter/Dart - Stream 사용 방법
- Flutter/Dart - 파일, 디렉토리 삭제
- Flutter/Dart - 텍스트 파일 쓰기
- Flutter/Dart - 반복문 (for, while, for-in, forEach)
- Flutter/Dart - Static 변수, 메소드 선언
- Flutter/Dart - 텍스트 파일 읽기
- Flutter/Dart - 다양한 Null 체크 방법
- Flutter/Dart - Double을 Int로 변환
- Flutter/Dart - Double을 String으로 변환
- Flutter/Dart - String을 Double로 변환
- Flutter/Dart - String을 List로 변환
- Flutter/Dart - String에서 특정 문자열 Index 찾기
- Flutter/Dart - String 길이(length)
- Flutter/Dart - 몇 초 지연시키기, sleep
- Flutter/Dart - 날짜 계산, 년/월/일 더하고 빼기
- Flutter/Dart - 날짜 문자열을 DateTime으로 변환
- Flutter/Dart - 현재 시간 가져오기, DateTime
- Flutter/Dart - Map에 key-value 추가
- Flutter/Dart - Map 순회 방법
- Flutter/Dart - Map 선언 및 초기화
- Flutter/Dart - Map에서 Entry(key-value) 제거
- Flutter/Dart - key, value로 Map 정렬
- Flutter/Dart - 리스트 복사 방법
- Flutter/Dart - 리스트 합치는 방법
- Flutter/Dart - 리스트 최대값, 최소값 찾기
- Flutter/Dart - 리스트 요소 추가, 특정 위치 추가
- Flutter/Dart - 리스트 요소 제거
- Flutter/Dart - 리스트 합계, 평균 계산
- Flutter/Dart - 리스트 요소 값 변경, 찾기
- Flutter/Dart - 리스트 중복 제거
- Flutter/Dart - 리스트 정렬 (오름차순, 내림차순)
- Flutter/Dart - 리스트 자르기, 분리하기
- Flutter/Dart - 변수 타입 체크
- Flutter/Dart - 리스트 필터링