Day 07(21.09.08) - Gomserker/Java-101 GitHub Wiki
08. ๋ฐ๋ณต๋ฌธ(for, while๋ฌธ)
1. ๋ฐ๋ณต๋ฌธ์ด๋?
์ด๋ค ์์
(์ฝ๋๋ค)์ด ๋ฐ๋ณต์ ์ผ๋ก ์คํ๋๋๋กํ ๋ ์ฌ์ฉ๋๋ค.
๋ฐ๋ณต๋ฌธ์ ์ข
๋ฅ๋ก๋ for๋ฌธ, while๋ฌธ, do-while๋ฌธ์ด ์๋ค. ์ด ์ค for๋ฌธ๊ณผ while๋ฌธ์ ์๋ก ๋ณํ์ด ๊ฐ๋ฅํ๋ค. ๋์ ์ฐจ์ด์ ์
for๋ฌธ์ ๋ฐ๋ณต ํ์๋ฅผ ์๊ณ ์์ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ฉฐ, while๋ฌธ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฐ๋ณตํ ๋ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
do-while์ ๊ฒฝ์ฐ, while๋ฌธ๊ณผ๋ ์กฐ๊ฑด์ ๋จผ์ ๊ฒ์ฌํ๋๋, ๋์ค์ ๊ฒ์ฌํ๋๋์ ์ฐจ์ด๋ง ์๊ณ ๋์ ๋ฐฉ์์ ๋์ผํ๋ค.
2. for๋ฌธ
int sum = 0; // sum ๋ณ์์ ๊ฐ์ 0์ผ๋ก ์ด๊ธฐํ
sum = sum + 1;
sum = sum + 2;
sum = sum + 3;
sum = sum + 4;
sum = sum + 5;
System.out.println("1~5๊น์ง์ ํฉ: " + sum);
1์์ 5๊น์ง์ ํฉ์ ๊ตฌํ ๋๋ ์์ ์ฝ๋๋ฅผ ์ฌ์ฉํด๋ ์ข์ง๋ง, ๋ง์ฝ 10๊น์ง, 100๊น์ง์ ํฉ์ ๊ตฌํ ๊ฒฝ์ฐ์๋ ์ฝ๋๊ฐ ๋๋ ์์ด ๋์ด๋๊ฒ ๋๋ค.
์ด๋ฐ ๊ฒฝ์ฐ์ ์๋์ ๊ฐ์ด for๋ฌธ์ ์ฌ์ฉํ๋ฉด ์์ฃผ ํจ๊ณผ์ ์ด๋ค.
// 1~100์ ํฉ๊ณ๋? ์ด ์ง๋ฌธ์์ ๋ฐ๋ณต๋ฌธ์ ๋ช ๋ฒ์ด๋ ์ฌ์ฉํ ์ง ํ์
ํ ์ ์์ผ๋ฏ๋ก for๋ฌธ์ ์ฌ์ฉํ๋ค.
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum = sum + i;
}
System.out.println("1~100๊น์ง์ ํฉ: " + sum);
for๋ฌธ์ ๋์ ๋ฐฉ์
for (์ด๊ธฐํ์; ์กฐ๊ฑด์; ์ฆ๊ฐ์) {
**์คํ๋ฌธ**
}
์ด๊ธฐํ์ โ ์กฐ๊ฑด์ โ ์คํ๋ฌธ โ ์ฆ๊ฐ์ โ ์กฐ๊ฑด์ โ ...
for๋ฌธ์ ์คํ๋ ๋, ์ด๊ธฐํ์์ด ์ ์ผ ๋จผ์ ์คํ๋ ํ, ์กฐ๊ฑด์์ ๊ฒฐ๊ณผ๊ฐ true๋ฉด ์คํ๋ฌธ์ ์คํ์ํค๊ณ false๋ฉด ๋ธ๋ก์ด ์คํ๋์ง ์๊ณ for๋ฌธ์ด ์ข
๋ฃ๋๋ค.
์คํ๋ฌธ์ด ์คํ๋๋ฉด ์ฆ๊ฐ์์ด ์คํ๋๊ณ , ์ด๋ฅผ ๋ฐํ์ผ๋ก ๋ค์ ์กฐ๊ฑด์์ ํ๊ฐํ๋ค.
์ด๋ฅผ ๋ฐํ์ผ๋ก ์์ ์์ ๋ค์ ์ดํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum = sum + i;
}
System.out.println("1~100๊น์ง์ ํฉ: " + sum);
- int 1 = 1์ด๋ผ๋ ์ด๊ธฐ ๊ฐ์ด ์ค์ ๋๋ค.
- ์กฐ๊ฑด์(i๋ 100 ์ดํ์ธ๊ฐ?)์ ๊ฒฐ๊ณผ๊ฐ true์ธ์ง ํ์ธํ๋ค.
- sum=0์ผ๋ก ์ด๊ธฐํ๋ sum์ i๋ฅผ(์ด ๋จ๊ณ์์ ์ด๊ธฐ๊ฐ 1) ๋ํ๋ค.
- ์ฆ๊ฐ์(i++)์ด ์คํ๋๋ค.
- ์ฆ๊ฐ์์ด ์คํ๋ ๋ค์ ๋ค์ ์กฐ๊ฑด์์ ๊ฒฐ๊ณผ๊ฐ true์ธ์ง ํ์ธํ๋ค. ์ด๊ธฐ๊ฐ 1์ด ์ฆ๊ฐ์์ ๊ฑฐ์ณ 2๊ฐ ๋์ผ๋ฏ๋ก ์กฐ๊ฑด์์ ๊ฐ์ด true์ด๋ค.
- ์คํ๋ฌธ์ด ๋ค์ ์คํ๋๋ค. (0 + 1 + 2๊ฐ ๋๋ ๊ฒ)
์ด๋ ๊ฒ i๊ฐ 100์ด ๋ ๋๊น์ง ์ ์์ด ๋ฐ๋ณต๋๋ค. 101์ด ๋๋ ์๊ฐ ์กฐ๊ฑด์(i๊ฐ 100 ์ดํ์ธ๊ฐ?)์ ๊ฒฐ๊ณผ๊ฐ false๊ฐ ๋๋ฏ๋ก for๋ฌธ์ด ์ข ๋ฃ๋๋ค.
์ค์ฒฉ for๋ฌธ โ โ โ
for๋ฌธ์ ๋ ๋ค๋ฅธ for๋ฌธ์ ๋ดํฌํ ์ ์๋๋ฐ ์ด๊ฒ์ ์ค์ฒฉ for๋ฌธ์ด๋ผ๊ณ ํ๋ค.
์ด ๊ฒฝ์ฐ ๋ฐ๊นฅ์ชฝ for๋ฌธ์ด ํ ๋ฒ ์คํ๋ ๋๋ง๋ค ์ค์ฒฉ๋ for๋ฌธ์ ์ง์ ๋ ํ์๋งํผ ๋ฐ๋ณตํด์ ๋๋ค๊ฐ
๋ค์ ๋ฐ๊นฅ์ชฝ for๋ฌธ์ผ๋ก ๋์๊ฐ ๋ฐ๋ณต๋ฌธ์ ์คํํ๋ค.
์ถ๋ ฅ ๊ฒฐ๊ณผ
zzzz
zzz
zz
z
์์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ์ค์ฒฉ for๋ฌธ์ ๋ค์๊ณผ ๊ฐ๋ค.
์๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค.
for (int k = 4; k > 0; k--) {
for (int l = 0; l < k; l++) {
System.out.print("z");
}
System.out.println("");
}
์ค์ฒฉ for๋ฌธ ์ฐ์ต - ๋ณ์ฐ๊ธฐ
1.
*
*
**
**
***
2.
*
*
*
*
*
3.
*
*
*
*
*
์ฝ๋๋ Code ํญ์ ์์ฑํจ
3. while๋ฌธ
for๋ฌธ์ด ์ ํด์ง ํ์๋งํผ ๋ฐ๋ณตํ๋ค๋ฉด, while๋ฌธ์ ์กฐ๊ฑด์์ด true์ผ ๊ฒฝ์ฐ์ ๊ณ์ํด์ ๋ฐ๋ณต๋๋ค.
์กฐ๊ฑด์์๋ ๋น๊ต ๋๋ ๋
ผ๋ฆฌ ์ฐ์ฐ์์ด ์ฃผ๋ก ์ค๋๋ฐ, ์กฐ๊ฑด์์ด false๊ฐ ๋๋ฉด ๋ฐ๋ณต์ ๋ฉ์ถ๊ณ while๋ฌธ์ ์ข
๋ฃํ๋ค.
์๋๋ while๋ฌธ์ ํ์๊ณผ ์คํ ํ๋ฆ์ด๋ค.
while(์กฐ๊ฑด์) {
์คํ๋ฌธ;
}
์กฐ๊ฑด์ โ ์คํ๋ฌธ โ ์กฐ๊ฑด์ โ ...
while๋ฌธ์ด ์ฒ์ ์คํ๋ ๋ ์กฐ๊ฑด์์ ํ๊ฐํ๊ณ , ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ true๋ฉด ์คํ๋ฌธ์ ์คํํ๋ค.
์คํ๋ฌธ์ด ์ ๋ถ ์คํ๋๋ฉด ๋ค์ ์กฐ๊ฑด์์ผ๋ก ๋์๊ฐ ์กฐ๊ฑด์์ ํ๊ฐํ๋ค.
for ๋ฌธ๋จ์์ ์์๋ก ๋ค์ 1~100 ๊น์ง์ ํฉ์ while๋ฌธ์ผ๋ก ์์ฑํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
int sum = 0;
int i = 1;
while(1<=100) {
sum = sum + i;
i++
}
System.out.println("1~100์ ํฉ: " + sum);
์ฃผ์ํด์ผ ํ ๋ถ๋ถ์, while๋ฌธ ๋ด์์ ๊ณ์ ๋์ ๋๋ ๊ฐ์ ๊ฐ๋ ๋ณ์(sum)๋ while๋ฌธ ์์์ ์ ๋ฏธ๋ฆฌ ์ ์ธํด์ผํ๋ค.