Dart에서 for문과 while문은 코드를 반복 실행할 때 사용된다.
이번 글에서는 기본적인 for문, while문, do-while문을 배우고,
이를 활용해 백준 문제(2446번, 2522번)를 Dart로 해결해본다. 🚀
1. Dart의 for문 사용법
📌 기본 for문
for 문은 반복 횟수가 정해져 있을 때 사용한다.
void main() {
String message = 'Dart is fun';
String chgUpper = "";
// 문자열 길이만큼 반복하며 대문자로 변환
for (var i = 0; i < message.length; i++) {
chgUpper += message[i].toUpperCase();
}
print(chgUpper); // DART IS FUN
}
📌 for-in 반복문
for-in 문은 리스트(List) 또는 집합(Set) 같은 Iterable 객체를 반복할 때 사용한다.
void main() {
List<String> candidates = ['yuneene', 'yun', 'lee'];
// 리스트의 각 요소를 순차적으로 출력
for (final candidate in candidates) {
print(candidate);
}
}
/*
출력값:
yuneene
yun
lee
*/
2. Dart의 while문 사용법
📌 while문
while 문은 반복 조건이 만족할 때 실행된다.
void main() {
String message = 'Dart is fun';
String chgUpper = "";
int i = 0;
// while 문을 이용해 문자열을 대문자로 변환
while (i < message.length) {
chgUpper += message[i].toUpperCase();
i++;
}
print(chgUpper); // DART IS FUN
}
📌 while(true) + break 사용
반복을 강제로 종료하고 싶다면 while(true)를 사용하고 break 문을 활용할 수 있다.
void main() {
String message = 'Dart is fun';
String chgUpper = "";
int i = 0;
while (true) {
if (i >= message.length) {
break; // 반복 종료
}
chgUpper += message[i].toUpperCase();
i++;
}
print(chgUpper); // DART IS FUN
}
📌 do-while문
do-while 문은 반복을 먼저 실행한 후, 조건을 확인한다.
void main() {
String message = 'Dart is fun';
String chgUpper = "";
int i = 0;
do {
chgUpper += message[i].toUpperCase();
i++;
} while (i < message.length);
print(chgUpper); // DART IS FUN
}
3. for문 연습: 백준 2446번 (별 찍기 - 9)
백준 문제 2446번을 Dart의 for문을 활용하여 해결해 보자.
🔗 문제 링크: 백준 2446번 - 별 찍기 9
📌 문제 설명
• 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
• 첫째 줄부터 (2×N-1)번째 줄까지 별을 출력한다.
📌 Dart 코드 풀이
import 'dart:io';
void main() {
int? N = int.parse(stdin.readLineSync()!);
int tLine = 2 * N - 1;
String star = "";
for (int i = 0; i < tLine; i++) {
star = "";
if (i < N) {
for (int j = 0; j < i; j++) star += " ";
for (int j = 0; j < tLine - (i * 2); j++) star += "*";
} else {
for (int j = 0; j < tLine - i - 1; j++) star += " ";
for (int j = 0; j < ((i * 2) - tLine) + 2; j++) star += "*";
}
print(star);
}
}
📌 입력값 & 출력값 예시
입력:
5
출력:
*********
*******
*****
***
*
***
*****
*******
*********
4. while문 연습: 백준 2522번 (별 찍기 - 12)
이번에는 Dart의 while문을 활용하여 백준 문제 2522번을 해결해 본다.
🔗 문제 링크: 백준 2522번 - 별 찍기 12
📌 문제 설명
• 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
• 첫째 줄부터 (2×N-1)번째 줄까지 별을 출력한다.
📌 Dart 코드 풀이 (while문 사용)
import 'dart:io';
void main() {
int N = int.parse(stdin.readLineSync()!);
int tLine = 2 * N - 1;
int i = 1;
String star = "";
while (i <= tLine) {
star = "";
if (i <= N) {
for (int j = 0; j < N - i; j++) star += " ";
for (int j = 0; j < i; j++) star += "*";
} else {
for (int j = 0; j < i - N; j++) star += " ";
for (int j = 0; j < (N - (i - N)); j++) star += "*";
}
print(star);
i++;
}
}
📌 입력값 & 출력값 예시
입력:
3
출력:
*
**
***
**
*
5. while문 + break 활용: 백준 2522번
import 'dart:io';
void main() {
int N = int.parse(stdin.readLineSync()!);
int tLine = 2 * N - 1;
int i = 1;
String star = "";
while (true) {
if (i > tLine) break; // 반복 종료
star = "";
if (i <= N) {
for (int j = 0; j < N - i; j++) star += " ";
for (int j = 0; j < i; j++) star += "*";
} else {
for (int j = 0; j < i - N; j++) star += " ";
for (int j = 0; j < (N - (i - N)); j++) star += "*";
}
print(star);
i++;
}
}
6. 마무리
이번 글에서는 Dart의 for문, while문, do-while문의 기본 사용법을 익히고,
이를 활용하여 **백준 문제(2446, 2522)**를 해결해 보았다.
📌 정리
✅ for 문: 반복 횟수가 정해진 경우 사용
✅ while 문: 조건이 만족할 때까지 반복
✅ do-while 문: 반복을 먼저 실행한 후, 조건 확인
✅ while(true) + break: 특정 조건에서 반복 종료
'코딩라이브러리 > Dart' 카테고리의 다른 글
[Dart] 람다 함수 사용 lambda (with 백준 1181) (0) | 2024.07.18 |
---|---|
[Dart] if, swich 조건문 (with 백준 1330) (0) | 2024.06.18 |
dart 은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치파일이 아닙니다 (with 안드로이드 스튜디오) (0) | 2024.06.12 |
[Dart] 코딩 연습 입출력 코드 방법 (0) | 2024.06.10 |
[Dart] 변수 종류, 널(null) 변수 디폴트 처리 (1) | 2024.06.04 |