
โ . ์๋ก : ๋ฐ๋ณต๋ฌธ์ด ์ค์ํ ์ด์
๐ ๋ฐ๋ณต๋ฌธ์ ํ์์ฑ
๐ Dart์ ๋ฐ๋ณต๋ฌธ ์ข ๋ฅ
โ ก. ๋ณธ๋ก : Dart์ ๋ฐ๋ณต๋ฌธ(while, do-while, for) ํ์ฉ๋ฒ
๐ Step 1: while ๋ฌธ๊ณผ ํ์ฉ๋ฒ
๐ Step 2: do-while ๋ฌธ๊ณผ ํ์ฉ๋ฒ
๐ Step 3: for ๋ฌธ๊ณผ ํ์ฉ๋ฒ
๐ Step 4: for-in ๋ฌธ๊ณผ ๋ฆฌ์คํธ(List) ํ์ฉ
๐ Step 5: forEach()์ ๋๋ค ํํ์ ํ์ฉ
๐ Step 6: break & continue ํ์ฉ
โ ข. ๋ฐ๋ณต๋ฌธ์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๋ ๋ฐฉ๋ฒ
๐ ๋ฐ๋ณต๋ฌธ ์ ํ ๊ธฐ์ค
๐ ์ฑ๋ฅ์ ๊ณ ๋ คํ ๋ฐ๋ณต๋ฌธ ํ์ฉ๋ฒ
Dart์์ ๋ฐ๋ณต๋ฌธ
(while, do-while, for) ํ์ฉ๋ฒ ๐๐
Dart์์ ๋ฐ๋ณต๋ฌธ(Loop Statements)์
์ฝ๋๋ฅผ ์ฌ๋ฌ ๋ฒ ์คํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
Flutter UI, ๋ฐ์ดํฐ ์ฒ๋ฆฌ, API ์์ฒญ ๋ฑ์์
๋ฐ๋ณต๋ฌธ์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๋ฉด
์ฝ๋์ ํจ์จ์ฑ์ ๋์ผ ์ ์์ต๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋
Dart์ while, do-while,
for ๋ฐ๋ณต๋ฌธ๊ณผ ํ์ฉ๋ฒ์
์์ ์ ํจ๊ป ์ ๋ฆฌํ๊ฒ ์ต๋๋ค. ๐
๋จผ์ ,
๋ ๋ง์ ์ ๋ณด, ํน์
์์๋๋ก ํฌ์คํ
์ ๋ณด๊ณ ์ถ๋ค๋ฉด
์๋ ๋
ธ์
์ ํ์ธํด์ฃผ์ธ์.

https://mongmung-i.notion.site/Flutter-1a39b1e2cdaa80319a0fc2a89281dc71?pvs=4
Flutter ์ดํ ๊ฐ๋ฐ ์ผ์ง | Notion
Made with Notion, the all-in-one connected workspace with publishing capabilities.
mongmung-i.notion.site
https://mongmung-i.notion.site/19f9b1e2cdaa80a984ade6141a87fd29?pvs=4
์ฐฝ์ ํธ๋ ์ฌ์ ์บ ํ ๐ฒ | Notion
์ด ๊ณณ์ ์ฐฝ์ ํธ๋ ์ฌ์ ์บ ํ ์งํ ์ฌํญ์ ์ ๋ฆฌํ๋ ๊ณณ์ ๋๋ค.
mongmung-i.notion.site
โ . ๋ฐ๋ณต๋ฌธ์ด ์ค์ํ ์ด์ ๐ค
๋ฐ๋ณต๋ฌธ์ ํ์์ฑ
โ
๋์ผํ ์์
์ ์ฌ๋ฌ ๋ฒ ์ํํ ๋ ์ฝ๋ ๊ธธ์ด๋ฅผ ์ค์ผ ์ ์์
โ
๋ฆฌ์คํธ, ๋งต(Map)๊ณผ ๊ฐ์ ์ปฌ๋ ์
๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅ
โ
Flutter UI์์ ๋ฆฌ์คํธ๋ทฐ(ListView) ๊ฐ์ ๋์ UI๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ ํ์์
โก ๋ฐ๋ณต๋ฌธ์ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ๋ฉด ์ฝ๋์ ํจ์จ์ฑ๊ณผ ๊ฐ๋ ์ฑ์ด ํฅ์๋จ! ๐
Dart์ ๋ฐ๋ณต๋ฌธ ์ข ๋ฅ
โ
while ๋ฌธ → ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด ๊ณ์ ์คํ
โ
do-while ๋ฌธ → ์ต์ ํ ๋ฒ์ ์คํ ํ ์กฐ๊ฑด ๊ฒ์ฌ
โ
for ๋ฌธ → ํน์ ํ์๋งํผ ๋ฐ๋ณต ์คํ
โ
for-in ๋ฌธ → ๋ฆฌ์คํธ, ๋งต ๋ฑ ์ปฌ๋ ์
๋ฐ์ดํฐ ์ํ
โ
forEach() ๋ฌธ → ๋ฆฌ์คํธ์ ๊ฐ ์์๋ฅผ ๋ฐ๋ณต ์คํ
โก ์ด์ ๊ฐ ๋ฐ๋ณต๋ฌธ์ ํ๋์ฉ ์ดํด๋ณด๊ฒ ์ต๋๋ค! ๐ฏ
โ ก. Dart์ ๋ฐ๋ณต๋ฌธ(while, do-while, for) ํ์ฉ๋ฒ ๐๏ธ
Step 1: while ๋ฌธ๊ณผ ํ์ฉ๋ฒ
while ๋ฌธ์
๋ฐ๋ณต ํ์๊ฐ ์ ํด์ง์ง ์์์ ๋
์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋ฐ๋ณต๋ฌธ์ ๋๋ค.
ํน์ ์กฐ๊ฑด์ด
์ฐธ(true)์ผ ๋์ ๊ณ์ํด์ ์คํ๋๋ฉฐ,
์กฐ๊ฑด์ด ๊ฑฐ์ง(false)์ด ๋๋ฉด ๋ฐ๋ณต์ด ์ข ๋ฃ๋ฉ๋๋ค.
โ while ๋ฌธ ๊ธฐ๋ณธ ๋ฌธ๋ฒ
void main() {
int count = 1;
while (count <= 5) {
print('๋ฐ๋ณต ์คํ: $count');
count++;
}
}
โ while ๋ฌธ ํ์ฉ ์์ (์ฌ์ฉ์ ์ ๋ ฅ ์ฒดํฌ)
void main() {
int number = 0;
while (number < 10) {
number += 2;
print('ํ์ฌ ๊ฐ: $number');
}
}
๐ while ๋ฌธ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋์ ๊ณ์ ์คํ๋จ! ๐ฏ
๐ก ์ธ์ while ๋ฌธ์ ์ฌ์ฉํด์ผ ํ ๊น?
- ์ฌ์ฉ์๊ฐ ํน์ ํค๋ฅผ ๋๋ฅผ ๋๊น์ง ์ ๋ ฅ์ ๊ณ์ ๋ฐ์ ๋
- ๋คํธ์ํฌ ์์ฒญ์ด ์ฑ๊ณตํ ๋๊น์ง ์ฌ์๋ํ ๋
- ๊ฒ์์์ ํ๋ ์ด์ด๊ฐ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ ๋๊น์ง ๋ฐ๋ณตํ ๋
โก while ๋ฌธ์ ์ข ๋ฃ ์กฐ๊ฑด์ด ๋ช ํํ์ง ์์ ๊ฒฝ์ฐ์ ์ ํฉํ๋ฉฐ, ๋ฐ๋ณต ํ์๋ฅผ ์ฌ์ ์ ์์ธกํ ์ ์๋ ๊ฒฝ์ฐ์ ์ ์ฉํจ! ๐
Step 2: do-while ๋ฌธ๊ณผ ํ์ฉ๋ฒ
do-while ๋ฌธ์ while ๋ฌธ๊ณผ ๋น์ทํ์ง๋ง,
์ต์ ํ ๋ฒ์ ์คํ๋๋ค๋ ์ฐจ์ด์ ์ด ์์ต๋๋ค.
์กฐ๊ฑด ๊ฒ์ฌ๋ฅผ ๋ฐ๋ณต๋ฌธ ์คํ ์ดํ์ ์ํํ๋ฏ๋ก,
์ต์ ํ ๋ฒ์ ์คํํด์ผ ํ๋ ๊ฒฝ์ฐ์ ์ ์ฉํฉ๋๋ค.
โ do-while ๋ฌธ ๊ธฐ๋ณธ ๋ฌธ๋ฒ
void main() {
int count = 1;
do {
print('์ต์ ํ ๋ฒ ์คํ: $count');
count++;
} while (count <= 3);
}
๐ do-while ๋ฌธ์ ์กฐ๊ฑด์ด ๊ฑฐ์ง์ด๋๋ผ๋ ์ต์ ํ ๋ฒ์ ์คํ๋จ! ๐ฏ
โ do-while ๋ฌธ ํ์ฉ ์์ (์ฌ์ฉ์ ์ ๋ ฅ์ด 0์ด ์๋ ๋๊น์ง ๋ฐ๋ณต)
import 'dart:io';
void main() {
int number;
do {
stdout.write('์ซ์๋ฅผ ์
๋ ฅํ์ธ์ (0 ์
๋ ฅ ์ ์ข
๋ฃ): ');
number = int.parse(stdin.readLineSync()!);
print('์
๋ ฅํ ์ซ์: $number');
} while (number != 0);
}
๐ do-while ๋ฌธ์ ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฐ๋ ๊ฒฝ์ฐ ์ ์ฉํจ! ๐ฏ
๐ก ์ธ์ do-while ๋ฌธ์ ์ฌ์ฉํด์ผ ํ ๊น?
- ์ฌ์ฉ์๊ฐ ํน์ ์ ๋ ฅ์ ํด์ผ์ง๋ง ๋ฐ๋ณต์ด ์ข ๋ฃ๋ ๋
- ๋ฉ๋ด ์ ํ์ด ํ์ํ ๋ (์: ATM ํ๋ก๊ทธ๋จ, ๊ฒ์ ๋ฉ๋ด ๋ฑ)
- ํ์ผ์ ๊ณ์ ์ฝ์ด์ผ ํ๋ ๊ฒฝ์ฐ (ํ์ผ์ ๋๊น์ง ์ฝ๊ณ ๋์ ์ข ๋ฃ๋ ๋๊น์ง ์คํ)
โก do-while ๋ฌธ์ ์ ์ด๋ ํ ๋ฒ ์คํ์ด ํ์ํ ๋ก์ง์ ์ ํฉํ๋ฉฐ, ์ฌ์ฉ์ ์ ๋ ฅ์ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ์ ์์ฃผ ์ฌ์ฉ๋จ! ๐
Step 3: for ๋ฌธ๊ณผ ํ์ฉ๋ฒ
for ๋ฌธ์ ๋ฐ๋ณต ํ์๊ฐ ๋ช ํํ ๊ฒฝ์ฐ์
๊ฐ์ฅ ์ ํฉํ ๋ฐ๋ณต๋ฌธ์ ๋๋ค.
์ด๊ธฐ์, ์กฐ๊ฑด์, ์ฆ๊ฐ์์
ํ ์ค์ ํํํ ์ ์์ด
๊ฐ๋ ์ฑ์ด ๋ฐ์ด๋๋ฉฐ,
๋ฐ๋ณต ํ์๋ฅผ ์ ์ดํ๊ธฐ ์ฉ์ดํฉ๋๋ค.
โ for ๋ฌธ ๊ธฐ๋ณธ ๋ฌธ๋ฒ
void main() {
for (int i = 1; i <= 5; i++) {
print('for ๋ฐ๋ณต ์คํ: $i');
}
}
โ for ๋ฌธ ํ์ฉ ์์ (๋ฐฐ์ด ์ํ)
void main() {
List<String> names = ['Alice', 'Bob', 'Charlie'];
for (int i = 0; i < names.length; i++) {
print('์ด๋ฆ: ${names[i]}');
}
}
๐ for ๋ฌธ์ ๋ฐ๋ณต ํ์๊ฐ ๋ช ํํ ๋ ๊ฐ์ฅ ์ ์ฉํจ! ๐ฏ
๐ก ์ธ์ for ๋ฌธ์ ์ฌ์ฉํด์ผ ํ ๊น?
- ๋ฆฌ์คํธ(List)๋ ๋ฐฐ์ด์ ์ํํ ๋
- ์ ํํ ๋ฐ๋ณต ํ์๊ฐ ํ์ํ ๋ (์: 10๋ฒ ๋ฐ๋ณต, 100๋ฒ ๋ฐ๋ณต ๋ฑ)
- ํน์ ๋ฒ์์ ์ซ์๋ฅผ ์์ฑํ ๋ (์: 1๋ถํฐ 100๊น์ง ์ถ๋ ฅ)
โก for ๋ฌธ์ ๋ฐ๋ณต ํ์๊ฐ ์ ํด์ง ๊ฒฝ์ฐ ๊ฐ์ฅ ์ง๊ด์ ์ด๋ฉฐ, ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋์ด๋ ๋ฐ ์ ์ฉํจ! ๐
Step 4: for-in ๋ฌธ๊ณผ ๋ฆฌ์คํธ(List) ํ์ฉ
for-in ๋ฌธ์ ๋ฆฌ์คํธ(List)์ ๊ฐ์
์ปฌ๋ ์ ์ ์ฝ๊ฒ ์ํํ๋ ๋ฐ๋ณต๋ฌธ์ ๋๋ค.
๋ฆฌ์คํธ(List), ๋งต(Map), Set๊ณผ ๊ฐ์
์ปฌ๋ ์ (Collection) ํ์ ์ ๋ฐ์ดํฐ๋ฅผ
์ฒ๋ฆฌํ ๋ ์ ์ฉํฉ๋๋ค.
โ for-in ๋ฌธ์ ํ์ฉํ ๋ฆฌ์คํธ ์ํ
void main() {
List<int> numbers = [10, 20, 30];
for (var num in numbers) {
print('์ซ์: $num');
}
}
๐ก ์ธ์ for-in ๋ฌธ์ ์ฌ์ฉํด์ผ ํ ๊น?
- ๋ฐฐ์ด์ด๋ ๋ฆฌ์คํธ์ ์์๋ฅผ ์ฐจ๋ก๋ก ํ์ํ ๋
- ๋งต(Map)์ ํค ๋๋ ๊ฐ์ ๋ฐ๋ณตํ ๋
- ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ์ฝ๋์์ ๊ฐ๋ ์ฑ์ ๋์ด๊ณ ์ถ์ ๋
โก for-in ๋ฌธ์ ์ฌ์ฉํ๋ฉด ๋ฆฌ์คํธ(List)๋ฅผ ๋์ฑ ์ง๊ด์ ์ผ๋ก ์ํํ ์ ์์ผ๋ฉฐ, ์ฝ๋๊ฐ ๊ฐ๊ฒฐํด์ง! ๐
Step 5: forEach()์ ๋๋ค ํํ์ ํ์ฉ
forEach()๋
๋ฆฌ์คํธ(List)์ ๊ฐ์
์ปฌ๋ ์ ์ ์ํํ ๋
๋์ฑ ๊ฐ๊ฒฐํ ๋ฌธ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
ํนํ ๋๋ค ํํ์
(ํ์ดํ ํจ์)์ ํ์ฉํ๋ฉด
์ฝ๋์ ๊ฐ๋ ์ฑ์ด ๋ฐ์ด๋๋ฉฐ,
๋ณต์กํ ์ฐ์ฐ์ ๊ฐ๋จํ๊ฒ
ํํํ ์ ์์ต๋๋ค.
โ forEach()๋ฅผ ํ์ฉํ ๋ฆฌ์คํธ ์ํ
void main() {
List<String> fruits = ['Apple', 'Banana', 'Cherry'];
fruits.forEach((fruit) {
print('๊ณผ์ผ: $fruit');
});
}
โ ๋๋ค ํํ์์ ์ฌ์ฉํ ๊ฐ๊ฒฐํ forEach()
void main() {
List<int> numbers = [1, 2, 3];
numbers.forEach((num) => print('์ซ์: $num'));
}
๐ forEach()๋ ๋ฆฌ์คํธ๋ฅผ ๋์ฑ ๊ฐ๊ฒฐํ๊ฒ ์ํํ ๋ ์ ์ฉํจ! ๐ฏ
๐ก ์ธ์ forEach()๋ฅผ ์ฌ์ฉํด์ผ ํ ๊น?
- ๋ฆฌ์คํธ(List) ์์๋ฅผ ๋ฐ๋ณตํ๋ฉฐ ํน์ ๋ก์ง์ ์ ์ฉํ ๋
- ๋๋ค ํํ์(ํ์ดํ ํจ์)์ ํจ๊ป ํ์ฉํ์ฌ ์ฝ๋ ๊ธธ์ด๋ฅผ ์ค์ด๊ณ ์ถ์ ๋
- ์ผ๋ฐ์ ์ธ for ๋ฌธ๋ณด๋ค ๋ ์ง๊ด์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ถ์ ๋
โก forEach()๋ ๋ฆฌ์คํธ ์์๋ฅผ ๋ฐ๋ณตํ๋ฉด์, ๊ฐ๋ ์ฑ์ ๋์ด๊ณ ์ ์ง๋ณด์๋ฅผ ์ฝ๊ฒ ๋ง๋ค์ด์ฃผ๋ ๊ฐ๋ ฅํ ๋๊ตฌ์! ๐
Step 6: break & continue ํ์ฉ
break์ continue๋
๋ฐ๋ณต๋ฌธ์ ํ๋ฆ์ ์ ์ดํ๋
์ค์ํ ํค์๋์ ๋๋ค.
break๋ ๋ฐ๋ณต๋ฌธ์ ์ฆ์ ์ข
๋ฃํ๋ฉฐ,
continue๋ ํน์ ๋ฐ๋ณต์ ๊ฑด๋๋ฐ๊ณ
๋ค์ ๋ฐ๋ณต์ผ๋ก ๋์ด๊ฐ๋๋ค.
โ break๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ๋ณต๋ฌธ ์ค๋จ
void main() {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
break; // ๋ฐ๋ณต๋ฌธ ์ข
๋ฃ
}
print('๋ฐ๋ณต: $i');
}
}
โ continue๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ์กฐ๊ฑด ๊ฑด๋๋ฐ๊ธฐ
void main() {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue; // 3์ผ ๋ ๊ฑด๋๋ฐ๊ธฐ
}
print('๋ฐ๋ณต: $i');
}
}
๐ break์ continue๋ฅผ ํ์ฉํ๋ฉด ๋ฐ๋ณต๋ฌธ์ ๋์ฑ ์ ์ฐํ๊ฒ ์ ์ด ๊ฐ๋ฅ! ๐ฏ
๐ก ์ธ์ break์ continue๋ฅผ ์ฌ์ฉํด์ผ ํ ๊น?
- ์ฌ์ฉ์๊ฐ ํน์ ๊ฐ์ ์ ๋ ฅํ์ ๋ ๋ฐ๋ณต์ ์ฆ์ ์ข ๋ฃํด์ผ ํ ๋ (break)
- ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฒฝ์ฐ์๋ง ๋ฐ๋ณต์ ์งํํ๊ณ ์ถ์ ๋ (continue)
- ๋ฐ๋ณต๋ฌธ ๋ด์์ ํน์ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋๋ฉด ์กฐ๊ธฐ ์ข ๋ฃ๊ฐ ํ์ํ ๋ (break)
โก break์ continue๋ฅผ ํ์ฉํ๋ฉด ๋ฐ๋ณต๋ฌธ์ ํ๋ฆ์ ๋์ฑ ์ ์ฐํ๊ฒ ์ ์ดํ ์ ์์ผ๋ฉฐ, ๋ถํ์ํ ์ฐ์ฐ์ ์ค์ผ ์ ์์! ๐
โ ข. ๋ฐ๋ณต๋ฌธ์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๋ ๋ฐฉ๋ฒ โ
๋ฐ๋ณต๋ฌธ ์ ํ ๊ธฐ์ค
โ
๋ฐ๋ณต ํ์๊ฐ ๋ช
ํํ๋ฉด for ๋ฌธ ์ฌ์ฉ
โ
์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฐ๋ณตํ ๋๋ while ๋ฌธ ์ฌ์ฉ
โ
์ต์ ํ ๋ฒ ์คํํด์ผ ํ๋ฉด do-while ๋ฌธ ์ฌ์ฉ
โ
๋ฆฌ์คํธ๋ฅผ ์ํํ ๋๋ for-in ๋๋ forEach() ํ์ฉ
โก ์ ์ ํ ๋ฐ๋ณต๋ฌธ์ ์ ํํ๋ฉด ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ฑ๋ฅ์ด ํฅ์๋จ! ๐
์ฑ๋ฅ์ ๊ณ ๋ คํ ๋ฐ๋ณต๋ฌธ ํ์ฉ๋ฒ
โ
while ๋ฌธ → ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด ๊ณ์ ๋ฐ๋ณต
โ
do-while ๋ฌธ → ์ต์ ํ ๋ฒ ์คํ ํ ์กฐ๊ฑด ๊ฒ์ฌ
โ
for ๋ฌธ → ํน์ ํ์๋งํผ ๋ฐ๋ณตํ ๋ ์ฌ์ฉ
โ
for-in ๋ฌธ → ๋ฆฌ์คํธ ์์๋ฅผ ๋ฐ๋ณตํ ๋ ์ ์ฉ
โ
forEach() → ๋ฆฌ์คํธ์์ ๋๋ค ํํ์์ ํ์ฉ ๊ฐ๋ฅ