ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ค ๋ณด๋ฉด, ๊ฐ์ ๋ช ๋ น์ ์ฌ๋ฌ ๋ฒ ์ํํด์ผ ํ ๋๊ฐ ์๋ค. ์ด๋ด ๋ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ๋ฉด ํธํ๋ค. ๋ฐ๋ณต๋ฌธ์๋ for๋ฌธ, do - while๋ฌธ์ด ์๋ค. ๋ฐ๋ณต๋ฌธ์ ์ด๋ป๊ฒ ์์ฑํ๊ณ ์ฌ์ฉํ๋์ง ์์๋ณด์.
5.1. ๋ฒ์ ์์์ ๋ฐ๋ณตํ ๋: for ๋ฌธ
5.1.1. ๊ธฐ๋ณธ ํ์ โ
for๋ฌธ์ ๋ํ์ ์ธ ๋ฐ๋ณต๋ฌธ์ ํํ๋ก, ์ ํด์ง ํ์๋ ๋ฒ์๋งํผ ๋ฐ๋ณตํ ๋ ์ฌ์ฉํ๋ค. ํ์์ ๋ค์๊ณผ ๊ฐ๋ค.
for(์ด๊ธฐ๊ฐ; ์กฐ๊ฑด์; ์ฆ๊ฐ์){
[์คํ๋ฌธ]; //๋ฐ๋ณต ์คํํ ๋ช
๋ น๋ฌธ
}
for๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ด ๋ฑ์ฅํ๋ค.
1. ์ด๊ธฐ๊ฐ
: ์ด๊ธฐ๊ฐ์ ๋ฐ๋ณต ๋ฒ์์ ์์ ๊ฐ์ด๋ค. ๋ณ์์ ๊ฐ์ ๋ฃ์ด ์ด๊ธฐํํ๋ ๋ฐฉ์์ผ๋ก ์์ฑํ๋ค. ์ด๊น๊ฐ์ ๋ฐ๋ณต๋ฌธ์ ์ฒ์ ์คํํ ๋ ํ ๋ฒ ์ํํ๋ค.
2. ์กฐ๊ฑด์
: ๋ฐ๋ณต๋ฌธ์ ์คํํ ์กฐ๊ฑด์ ๋ฃ๋๋ค.์กฐ๊ฑด์ ๋ณดํต ๋ฐ๋ณตํ ํ์๋ ๋ฒ์๋ฅผ ๋ํ๋ธ๋ค.
3. ์คํ๋ฌธ
: ์กฐ๊ฑด์์์ ๋ณ์์ ๊ฐ์ด ์กฐ๊ฑด์ ์ถฉ์กฑํ๋์ง ํ์ธํ๊ณ ๋๋ฉด ์ค๊ดํธ์ ์๋ ์คํ๋ฌธ์ผ๋ก ๋ค์ด๊ฐ๋ค. ์ฌ๊ธฐ๊ฐ ๋ฐ๋ณต๋ฌธ์์ ์ค์ ๋ก ๋ฐ๋ณต๋๋ ๋ถ๋ถ์ด๋ค.
4. ์ฆ๊ฐ์
: ๋ฐ๋ณตํ ๋ฌธ์ฅ์ ์คํํ ํ์๋ ์ฆ๊ฐ์์ผ๋ก ๊ฐ๋ค. ์ฆ๊ฐ์์์๋ ๋ณ์ ๊ฐ์ ์ฆ๊ฐ์ํค๊ฑฐ๋ ๊ฐ์์์ผ์ ๋ฐ๋ณต ํ์๋ ๋ฒ์๋ฅผ ์กฐ์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ์กฐ๊ฑด์์ผ๋ก ๊ฐ๋ค.
์์ ์ฝ๋๋ก for๋ฌธ์ผ ์๋ ๋ฐฉ์์ ์ดํดํด๋ณด์. ์ด์ ์๋ 10์ค์ ์์ฑํด์ผ ํ๋ printf() ์ฝ๋๋ฅผ 1์ค๋ง ์์ฑํ๋ฉด ๋๋ค.
public class Main {
public static void main(String[] args){
for (int i=1; i<=10; i++){
System.out.printf("%d,", i);
}
}
}
์ฐธ๊ณ ๋ก ์์ ์ฝ๋์์ print()๋ฅผ ์ฌ์ฉํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. print()๋ ๋จ์ํ ๋ฌธ์์ด์ ์ถ๋ ฅํ๋ ์ญํ ๋ง ํ๋ฏ๋ก, ํ์ ์ง์ ์๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค. ๋ฐ๋ผ์ ๋ฌธ์์ด ํฌ๋ฉงํ ๊ธฐ๋ฅ์ ์ง์ํ๋ printf()๋ฅผ ์ฌ์ฉํด์ผํ๋ค.
1. ๋ณ์๋ช ์ i๋ก ํ๊ณ , 0์ผ๋ก ๋ณ์ ์ด๊ธฐํ๋ฅผ ์งํํ๋ค.
2. ๋ฐ๋ณตํ ๋ฒ์(์กฐ๊ฑด)์ i๊ฐ 10 ๋ฏธ๋ง์ผ๋์ด๋ค. ํ์ฌ i์ ๊ฐ์ 0์ด๊ธฐ ๋๋ฌธ์ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ค.
3. ์กฐ๊ฑด์ ์ถฉ์กฑํ์ผ๋ ์ค๊ดํธ ์์ ์๋ ์คํ๋ฌธ์ผ๋ก ๊ฐ๋ค. i+1์ ๊ฐ์ธ 1์ ์ถ๋ ฅํ๋ค.
4. println()์ ์คํํ ํ์ ์ฆ๊ฐ์์ผ๋ก ๊ฐ๋ค. i++์ ์ํด i ๊ฐ์ด 1์ฆ๊ฐํ 1์ด ๋๋ค. ์ดํ์๋ ๋ค์ ์กฐ๊ฑด์์ผ๋ก ๋์๊ฐ i๊ฐ์ ๋น๊ตํ๋ค.
๋ฐ๋ณต๋ฌธ ํ์์ ๋ฐ๋ฅธ ์ค์ ๊ฐ์ ์ ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
11๋ฒ์งธ ๋ฐ๋ณต์์ i ๋ณ์์ ๊ฐ์ด 10์ด๋ฏ๋ก, ์กฐ๊ฑด์์ธ i<10์ ๋ง์ง ์๋๋ค. ๋ฐ๋ผ์ 11๋ฒ์งธ์์ ๋ฐ๋ณต๋ฌธ์ ๋ฒ์ด๋๋ค.
๋ฐ๋ณต ํ์ | 2(i<10)์์ i ๋ณ์์ ๊ฐ | 3(i+1)์ ์ถ๋ ฅ ๊ฒฐ๊ณผ | 4(i++)์์ i ๋ณ์์ ๊ฐ |
1 | 0 | 1 | 1 |
2 | 1 | 2 | 2 |
3 | 2 | 3 | 3 |
4 | 3 | 4 | 4 |
5 | 4 | 5 | 5 |
6 | 5 | 6 | 6 |
7 | 6 | 7 | 7 |
8 | 7 | 8 | 8 |
9 | 8 | 9 | 9 |
10 | 9 | 10 | 10 |
11 | 10 | x | x |
5.1.2. ์ฆ๊ฐ ์ฐ์ฐ์ โ โ โ
์ฆ๊ฐ ์ฐ์ฐ์๋ ๋ฐ๋ณต๋ฌธ์์ ์์ฃผ ์ฌ์ฉ๋๋ค. ๋ํ ์ฆ๊ฐ ์ฐ์ฐ์๋ ์ฐ์ฐ์๊ฐ ์ด๋์ ์์นํ๋๋์ ๋ฐ๋ผ ์๋ ๋ฐฉ์์ด ๋ฌ๋ผ์ง๋ค.
์ฆ๊ฐ ์ฐ์ฐ์์๋ ์๋์ ๊ฐ์ ๊ฒ๋ค์ด ์๋ค.
์ฆ๊ฐ ์ฐ์ฐ์ | ์ค๋ช |
i++ | i ๊ฐ์ ์ฌ์ฉํ ํ์ i+1์ ์งํ |
i-- | i ๊ฐ์ ์ฌ์ฉํ ํ์ i-1์ ์งํ |
++i | i+1 ์ ํ ํ์ i ๊ฐ ์ฌ์ฉ |
--i | i-1 ์ ํ ํ์ i ๊ฐ ์ฌ์ฉ |
public class Main {
public static void main(String[] args){
int num1 = 5;
int num2 = 5;
int result1 = num1++;
int result2 = ++num2;
System.out.println(result1);
System.out.println(result2);
System.out.println(num1);
System.out.println(num2);
}
}
/*
5
6
6
6
*/
//println(result1)
result1 = num1++์ด๊ณ , num1 ๋ณ์์๋ ํ์ฌ 5๋ผ๋ ๊ฐ์ด ์ ์ฅ๋์ด์๋ค.
i++๋ ํ์ ์ฆ๊ฐ ์ฐ์ฐ์์ด๋ฏ๋ก, num1 ๋ณ์์ ๊ฐ์ ์ฌ์ฉํ ํ์ num1 ๋ณ์์ ๊ฐ์ 1์ฆ๊ฐ์ํจ๋ค. ๋ฐ๋ผ์ ํ์ฌ num1 ๋ณ์์ ๊ฐ์ result ๋ณ์์ ์ ์ฅํ๊ณ ๋ ํ num1 ๋ณ์์ ๊ฐ์ 1 ์ฆ๊ฐ์ํค๊ฒ ๋๋ค. ๋ฐ๋ผ์ result1์ ๊ฐ์ 5๋ก, num1 ๊ฐ์ 6์ผ๋ก ์ถ๋ ฅ๋๋ค.
//println(result2)
result2 = ++num2์ด๊ณ , num2 ๋ณ์์๋ 5๋ผ๋ ๊ฐ์ด ์ ์ฅ๋์ด์๋ค.
++i๋ ์ ์ ์ฆ๊ฐ ์ฐ์ฐ์์ด๋ฏ๋ก, num2 ๋ณ์์ ๊ฐ์ ๋จผ์ 1 ์ฆ๊ฐ์ํจ ํ์ num2 ๋ณ์์ ๊ฐ์ result2 ๋ณ์์ ์ ์ฅํ๋ค. ๋ฐ๋ผ์ result2 ๋ณ์์ num2 ๋ณ์์ ๊ฐ์ด ๋ชจ๋ 6์ผ๋ก ์ถ๋ ฅ๋๋ค.
๊ณ์ ํท๊ฐ๋ คํ๋ ๋๋ฅผ ์ํ ์์ 2.........
public class Main {
public static void main(String[] args){
int a1 = 5;
System.out.println(a1); //5
int a2 = a1++;
System.out.println(a1); //5๊ฐ ์๋๋ผ 6
System.out.println(a2); //5
System.out.println(a1); //6
System.out.println(a2); //6์ด ์๋๋ผ 5
}
}
5.1.3. for ๋ฌธ์ผ๋ก ์ฐ์ฐํ๊ธฐ
์ด๋ฒ์๋ 1๋ถํฐ 100๊น์ง ํฉ์ ๊ตฌํด๋ณด๊ฒ ๋ค. ํฉ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๋ sum ๋ณ์๋ฅผ ์ฌ์ฉํด ์ฝ๋๋ฅผ ์์ฑํด๋ณด์.
(์ ์, ํ์ ์ฐ์ฐ์๋ฅผ ๊ณต๋ถํ ๋ค ๋ฐ๋ก ์์ for๋ฌธ์ ์กฐ๊ฑด ๋ถ๋ถ์ ๋ฑํธ๋ฅผ <=๋ก ์ฐ๋๊ฒ ๋ง๋์ง ํท๊ฐ๋ ธ๋ค -> ์ฆ๊ฐ๊ฐ ์ด๋ป๊ฒ ๋๋ ์กฐ๊ฑด์์ i๊ฐ์ ๋ง์์ฃผ๋ ๊ฑฑ์ ํ์ง ๋ง๊ณ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์)
public class Main {
public static void main(String[] args){
//1๋ถํฐ 100๊น์ง ๋ํ๋ ์ฝ๋
int sum = 0;
for (int i=1; i<=100; i++){
sum = sum + i;
}
System.out.print(sum);
}
}
์ด๋ int sum = 0;์ฒ๋ผ ๋ณ์ ์ด๊ธฐํ๋ฅผ ์งํํด์ผํ๋ค.
๋ณ์๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋ณ์์ ์ ์ฅํ ๊ฐ์ ์ฌ์ฉํ๋ค๋ ์๋ฏธ์ด๋ค. ๋ณ์๋ฅผ ์ ์ธํ ๋ ๋ณ์ ์ด๊ธฐํ๋ฅผ ํ์ง ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ํ ๋น๋๋ฉด์ ์ ์ ์๋ ๊ฐ์ด ๋ค์ด๊ฐ๋ค. ์ด ์ํ๋ก ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ ์๋ ๊ฐ์ผ๋ก ์ฐ์ฐ์ด ์งํ๋๋ฏ๋ก ์์ํ์ง ๋ชปํ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํ ์ ์๋ค. ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์๋ฐ์์๋ ์ค๋ฅ๋ฅผ ๋ฐ์์์ผ ๋ณ์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ์ด๊ธฐํํ๋๋ก ๊ฐ์ ํ๋ค.
5.1.4. ์ค์ต: for ๋ฌธ์ผ๋ก ๊ตฌ๊ตฌ๋จ ํ๋ก๊ทธ๋จ ๋ง๋ค๊ธฐ
๋ด ์๊ฐ)
"[์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ ๋ฐ์ ๋จ] x [1๋ถํฐ 9๊น์ง ์ฆ๊ฐํ๋ ์ซ์] = [๊ณ์ฐ ๊ฒฐ๊ณผ]" ๊ตฌ์กฐ๋ง 9๋ฒ ๋ฐ๋ณต๋ ๊ฒ์ด๋ฏ๋ก for ๋ฌธ์ ์ฌ์ฉํ๋ค.
public class Main {
public static void main(String[] args){
System.out.print("์ถ๋ ฅํ ๋จ์ ์
๋ ฅํ์ธ์:");
Scanner scan = new Scanner(System.in);
int dan = scan.nextInt();
int sum;
for (int i=1; i<=9; i++){
sum = dan * i;
System.out.printf("%d x %d = %d\n", dan, i, sum);
}
}
}
์ฌ๊ธฐ์์ sum ๋ณ์๋ ์ฐ์ฐ์ด ์๋(์ด์ ์ ์ฝ๋์ฒ๋ผ) ๊ณฑํ ๊ฐ์ ์ ์ฅํ ๋ ์ฒ์ ์ฌ์ฉํ๋ฏ๋ก ์ด๊ธฐํํ์ง ์์๋ ๋๋ค.
5.1.5. ์ค์ฒฉ ๋ฐ๋ณต๋ฌธ ์ฌ์ฉํ๊ธฐ โ
์ด๋ฒ์๋ ๊ตฌ๊ตฌ๋จ์ ์ ๋ถ ์ถ๋ ฅํ๋ณด์.
๊ตฌ๊ตฌ๋จ ์ ์ฒด๋ฅผ ๋๊ณ ๋น๊ตํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค. ๊ทธ๋ฆผ์์๋ '๋จ'๊ณผ '๊ณฑํ๋ ์'๊ฐ ๋ฐ๋๋ค. ์ฆ ๋ฐ๋ณตํ ๋ถ๋ถ์ด 2๋ถ๋ถ ์๋ค๋ ์๋ฏธ์ด๋ค. ์ด๋ด ๋๋ ์ค์ฒฉ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ๋ค.
์ด๋ฐ ์๋ฏธ๋ก ์์ ๊ตฌ๊ตฌ๋จ ์ฝ๋๋ฅผ ์๊ฐํด๋ณด๋ฉด, ๋ณํ๋ ๋ถ๋ถ์ '๊ณฑํ๋ ์' 1๋ถ๋ถ์ด๋ ๋ฐ๋ณตํ ๋ถ๋ถ์ด 1๋ถ๋ถ ์๋ค๋ ๊ฒ์ด ๋๋ค.
๋ฐ๊นฅ for๋ฌธ์ dan์, ์์ชฝ for๋ฌธ์ ๊ณฑํ๋ ์(i)๋ก ํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
public class Main {
public static void main(String[] args){
//๋ฐ๊นฅ for๋ฌธ์ dan์, ์์ชฝ for๋ฌธ์ ๊ณฑํ๋ ์(i)๋ก ํ๋ฉด ๋ ๋ฏ
for (int dan=2 ; dan<=9; dan++){
System.out.printf("\n===== %d๋จ =====\n", dan);
for (int i=1; i<=9; i++){
int sum;
sum = dan * i;
System.out.printf("%d x %d = %d\n", dan, i, sum);
}
}
}
}
5.1.6. QUIZ โ
๋ค์ ์ฝ๋์์ for๋ฌธ ์์ ๋ช ๋ น๋ฌธ์ ๋ช ๋ฒ ์คํ๋ ๊น?
public class Main {
public static void main(String[] args) {
for (int i=0; i<=6; i++){
for (int j=0; j<=4; j++){
System.out.print("Hello");
}
}
}
}
๋ด ๋ต)
6 x 4 = 24๋ฒ...?
๋ต)
7 x 5 = 35๋ฒ
-> 0,1,2,3,4,5,6 7๋ฒ/ 0,1,2,3,4 5๋ฒ์ด์์ด
-> 0๋ ํฌํจํด์ผ์ง ๋ฉ์ฒญ์(0 <= i <= 6์ผ ๋, i๋ 0+6+1์ด์์)
5.2. ์กฐ๊ฑด์ด ์ฐธ์ผ ๋์ ๋ฐ๋ณตํ ๋: while ๋ฌธ
5..1 while ๋ฌธ โ
while๋ฌธ์ ์๊ดํธ ์์ ์กฐ๊ฑด์์ ๋ง์กฑํ๋ฉด(true์ด๋ฉด) ์ค๊ดํธ ์์ ์๋ ๋ช ๋ น๋ฌธ์ ๋ฐ๋ณต ์คํํ๋ค. ์กฐ๊ฑด์์ ๋ง์ถฐ ์คํ์ ๋ฐ๋ณตํ๋ค๋ ์ ์ for๋ฌธ๊ณผ ๊ฐ์ง๋ง ์ฌ์ฉ ๋ฐฉ์์ด ์กฐ๊ธ ๋ค๋ฅด๋ค. while๋ฌธ์ ๊ธฐ๋ณธ ํ์์ ์๋์ ๊ฐ๋ค.
while ([์กฐ๊ฑด์]){
[์คํ๋ฌธ]; //๋ฐ๋ณต ์คํํ ๋ช
๋ น๋ฌธ
}
ํ์์ ๊ฐ๋จํ๋ฐ, ์ด๋ป๊ฒ ์๋ํ๋์ง for๋ฌธ๊ฐ ๋น๊ตํด์ ์ดํด๋ณด๊ฒ ๋ค.
//for๋ฌธ์ผ๋ก ์์ฑํ 1~10๊น์ง ์ถ๋ ฅํ๋ ์ฝ๋
public class Main {
public static void main(String[] args){
for (int i=0; i<10; i++){
System.out.println(i+1);
}
}
}
//while๋ฌธ์ผ๋ก ์์ฑํ 1~10๊น์ง ์ถ๋ ฅํ๋ ์ฝ๋
public class Main {
public static void main(String[] args) {
int i = 0;
while(i<10){
System.out.println(i+1);
i++;
}
}
}
-> for๋ฌธ์ ์ด๊ธฐ๊ฐ, ์กฐ๊ฑด, ์ฆ๊ฐ์์ ์์ฑํ๋ ์์น๋ง ๋ฐ๋์๋ค๊ณ ์๊ฐํ๋ฉด ํธํ๋ค.
-> ์ด๊ธฐ๊ฐ์ while๋ฌธ ์๋ก ๋น ์ง๊ณ , ์ฆ๊ฐ์์ ๋ฐ๋ณต ์คํํ ๋ช ๋ น๋ฌธ ์๋๋ก ๊ฐ๋ค.
-> while (i<10)์์ i๊ฐ์ด 10๋ณด๋ค ์์ผ๋ฉด ์กฐ๊ฑด์์ด ์ฐธ(true)์ด๋ฏ๋ก while๋ฌธ ๋ด๋ถ๋ก ์ง์ ํ๋ค.
while๋ฌธ์ ์๋ ๋ฐฉ์์ ์์๋๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
if๋ฌธ๊ณผ ๋ฌ๋ฆฌ ์กฐ๊ฑด์์ ๊ฐ์ด false์ด๋ฉด ๊ทธ๋ฅ while๋ฌธ์ ํ์ถํ๋ค.
5.2.2. QUIZ โ โ
๋ค์์ for๋ฌธ์ผ๋ก ์์ฑํ ๊ตฌ๊ตฌ๋จ ์ถ๋ ฅ ํ๋ก๊ทธ๋จ์ด๋ค. ์ด ํ๋ก๊ทธ๋จ์ while๋ฌธ์ผ๋ก ๋ฐ๊ฟ๋ผ
for (int i=2; i<9; i++){
System.out.println("====" + i + "๋จ====");
for (int j=1; j<=9; j++){
System.out.println(i + "x" + j + "=" (i*j));
}
}
๋ด๊ฐ ์ง ์ฝ๋) - ์ ๋ต
์ ๋ต ์ฝ๋์ ๋ค๋ฅธ ์ ์ dan์ ์ฆ๊ฐ ๊ทธ๋ฆฌ๊ณ i ์ด๊ธฐํ ๋ถ๋ถ์. ๋๋ ์์ชฝ์ while๋ฌธ์ ๋๊ณ i๊ฐ 9๋ณด๋ค ์ปค์ ธ์ ๋ฐ๊นฅ while๋ฌธ์ผ๋ก ๋์ค๋ฉด dan์ 1 ์ฆ๊ฐ์ํค๊ณ i์ ๊ฐ์ 1๋ก ์ด๊ธฐํ์์ผฏ์. ์ ๋ต ์ฝ๋๋ ๋ฐ๊นฅ while๋ฌธ์ ์ง์ ํ๊ณ ๋ ๋ค(๊ตฌ๊ตฌ๋จ ๋จ ์ถ๋ ฅํ๋ ๋ถ๋ถ ์์) i=1์ ์ ์๋ค. ์ฆ ์ ์ฒด while๋ฌธ์ ํ ๋ฐํด ๋๊ณ dan = 2๊ฐ true๊ฐ ๋๋ฉฐ ๋ฐ๊นฅ while๋ฌธ์ ์ฌ์ง์ ํ ๋ค ๋ฐ๋ก i๋ฅผ 1๋ก ์ด๊ธฐํ ์ํจ๋ค.
public class Main {
public static void main(String[] args) {
int dan = 2;
int i = 1;
while(dan <= 9){
System.out.printf("\n===== %d๋จ =====\n", dan);
while (i <= 9){
System.out.println(dan + "x" + i + "=" + (dan*i));
i++;
}
dan++;
i = 1;
}
}
}
์ด๊ฑด ์ ๋ต ์ฝ๋์ด๋ค.
public static void main(String[] args) {
int dan = 2;
int i = 1;
while(dan <= 9){
i = 1;
System.out.printf("\n===== %d๋จ =====\n", dan);
while (i <= 9){
System.out.println(dan + "x" + i + "=" + (dan*i));
i++;
}
dan++;
}
}
<ํผ๋๋ฐฑ>
(1) i๋ฅผ 1๋ก ์ด๊ธฐํ ํด์ผ ํ๋ ๋ถ๋ถ์ ์๊ฐํ์ง ๋ชปํด์ 2๋จ๋ง ์ถ๋ ฅํ๊ณ ๋๋จธ์ง๋ ์ด์ํ๊ฒ ์ถ๋ ฅ๋์๋ค.
(2) ๋ฐ๊นฅ while๋ฌธ -> ์์ชฝ while๋ฌธ -> dan++, i=1 -> ๋ฐ๊นฅ while๋ฌธ์์ dan=2์ด๋ฏ๋ก true๊ฐ์ด ๋๋ฉฐ ํต๊ณผ -> ์์ชฝ while๋ฌธ -> ...
5.3. ๋ฌด์กฐ๊ฑด ํ ๋ฒ์ ์คํํ ๋: do-while ๋ฌธ
5.3.1. do-while ๋ฌธ
while๋ฌธ์ ์๊ดํธ ์ ์กฐ๊ฑด์์ ๋จผ์ ํ์ธํ๊ณ , ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด ์ค๊ดํธ ์์ ์๋ ๋ช ๋ น๋ฌธ์ ๋ฐ๋ณต ์คํํ๋ค. ๋ฐ๋ฉด do-while๋ฌธ์ ๋ช ๋ น๋ฌธ ๋ค์์ while ํค์๋์ ์กฐ๊ฑด์์ด ์จ๋ค.
-> ๊ทธ๋์ ์กฐ๊ฑด๊ณผ ์๊ด์์ด ๋ฌด์กฐ๊ฑด ํ ๋ฒ(do-while๋ฌธ์ ์ฒซ ๋ฒ์งธ ์คํ์์)์ ๋ช ๋ น๋ฌธ์ ์คํํ๋ค. ์ดํ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์์ผ๋ฉด, ์ฆ ์ฐธ์ด ์๋๋ฉด ๋ฐ๋ณต๋ฌธ์ ๋น ์ ธ๋๊ฐ๋ค.
๊ธฐ๋ณธ ํ์์ ์๋์ ๊ฐ๋ค.
do{
[์คํ๋ฌธ];
} while(์กฐ๊ฑด์);
์ด์ while๋ฌธ๊ณผ do-while๋ฌธ์ ์ฐจ์ด์ ์ ์์ ๋ก ํ์ธํด๋ณด์.
๋จผ์ while๋ฌธ์ด๋ค. while๋ฌธ์ ์กฐ๊ฑด์์ i๊ฐ 1๋ณด๋ค ์์ ๊ฒฝ์ฐ true์ด๋ฉฐ ์์์ i ๋ณ์๋ฅผ 1๋ก ์ด๊ธฐํํ์ผ๋ฏ๋ก ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์๋๋ค. ๋๋ฌธ์ while๋ฌธ ์์ ๋ช ๋ น๋ฌธ์ ์คํ๋์ง ์๊ณ ๋ฐ๊นฅ์ ๋ช ๋ น๋ฌธ๋ง ์คํ๋๋ค.
public class Main {
public static void main(String[] args) {
int i=1;
while(i<1){
System.out.printf("while๋ฌธ %d๋ฒ์งธ ์คํ\n", i);
i++;
}
System.out.printf("ํ์ฌ i๋ณ์์ ๊ฐ: %d", i);
}
}
//ํ์ฌ i๋ณ์์ ๊ฐ: 1
๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์์ฑํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
do-while๋ฌธ ์์ ๋ช ๋ น์ด๊ฐ ๋จผ์ ์คํ๋์ด ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๊ณ ์ดํ ์กฐ๊ฑด์์ ํ์ธํ๋ค. ์ญ์ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์์ผ๋ฏ๋ก ๋ฐ๋ณตํ์ง ์๊ณ ์ข ๋ฃํ๋ค. while๋ฌธ๊ณผ ๋ฌ๋ฆฌ do-while๋ฌธ ์์ ๋ช ๋ น๋ฌธ์ด 1๋ฒ ์คํ๋์ด i ๋ณ์์ ๊ฐ์ด ์ฆ๊ฐํ์ผ๋ฏ๋ก do-while๋ฌธ ๋ฐ๊นฅ์ system.out ํจ์์ i๋ 2๋ก ์ถ๋ ฅ๋๋ค.
public class Main {
public static void main(String[] args) {
int i=1;
do{
System.out.printf("while๋ฌธ %d๋ฒ์งธ ์คํ\n", i);
i++;
}
while(i<1);
System.out.printf("ํ์ฌ i๋ณ์์ ๊ฐ: %d", i);
}
}
/*
while๋ฌธ 1๋ฒ์งธ ์คํ
ํ์ฌ i๋ณ์์ ๊ฐ: 2
*/
์ด์ฒ๋ผ do-while๋ฌธ์ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์๋๋ผ๊ณ ์ค๊ดํธ ์ ๋ช ๋ น๋ฌธ์ ๋ฌด์กฐ๊ฑด ํ ๋ฒ์ ์คํํ๋ค. ๊ทธ๋์ do-while ๋ฐ๋ณต๋ฌธ์ ์ด๋ค ๋ช ๋ น์ ํ ๋ฒ ์ํํ ํ ๋ฐ๋ณต ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ ๋ ์ฃผ๋ก ์ฌ์ฉ๋๋ค.
do-while๋ฌธ์ ์์๋๋ ์๋์ ๊ฐ๋ค.
5.3.2. QUIZ
์ด ๊ฒฝ์ฐ์๋ ์ซ์๋ฅผ ์ ๋ ฅ๋ฐ๋ ๋ถ๋ถ์ด do์ ์ค๊ดํธ ์์ ์กด์ฌํ๋ค. ์ฆ 0์ ์ ๋ ฅํ์๋๊ฐ ์ด๋ฏธ do ์์ ์๋ ์ํ์ด๊ธฐ ๋๋ฌธ์(์ง์ ์ num!=0์ ๋ง์กฑํ๋ ์ซ์๋ฅผ ์ ๋ ฅํ์ ๊ฑฐ์) '์ ๋ ฅํ ์ซ์๋ 0์ ๋๋ค'๊ฐ ์ถ๋ ฅ๋๋ค.
์์์ ์ดํด๋ดค๋ do-while๋ฌธ์ด๋ ํ๊ฐ๋ฆฌ๋ฉด ์๋๋ค(๋ด๊ฐ ๊ทธ๋ฌ๋ค)
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num;
do{
System.out.print("์ซ์๋ฅผ ์
๋ ฅํ์ธ์(0์ ์
๋ ฅํ๋ฉด ์ข
๋ฃ๋ฉ๋๋ค. ->");
num = scan.nextInt();
System.out.printf("์
๋ ฅํ ์ซ์๋ %d์
๋๋ค.\n", num);
} while(num != 0); //์กฐ๊ฑด์์....?
System.out.println("ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํฉ๋๋ค.");
}
}
5.4. ๋ฌดํ ๋ฐ๋ณต๋ฌธ
๋ฐ๋ณต๋ฌธ์ด ๋๋์ง ์๊ณ ๋ฌดํํ ๋ฐ๋ณต๋๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ, ์ด๋ฅผ ๋ฌดํ ๋ฐ๋ณต๋ฌธ(infinite loop) ๋๋ ๋ฌดํ ๋ฃจํ๋ผ๊ณ ํ๋ค. ์กฐ๊ฑด์ ์๋ชป ์ค์ ํด์ ๋ฐ์ํ๋ ์ค๋ฅ์ผ ์๋ ์์ง๋ง, ํ๋ก๊ทธ๋จ์์ ์๋์ ์ผ๋ก ๋ฌดํ ๋ฐ๋ณต๋ฌธ์ ์์ฑํ๊ธฐ๋ ํ๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์ ์ ๋ ฅ์ผ๋ก ํ๋ก๊ทธ๋จ์ ์งํํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ์ ์ ๋ ฅ์ด ๋ค์ด์ฌ ๋๊น์ง ๋๊ธฐํ๋ ๊ฒฝ์ฐ๊ฐ ๊ทธ๋ ๋ค.
5.4.1. for๋ฌธ์ ์ด์ฉํ ๋ฌดํ ๋ฐ๋ณต๋ฌธ: for(;;)
for๋ฌธ์ ์ฌ์ฉํด ๋ฌดํ ๋ฐ๋ณต๋ฌธ์ ๋ง๋ค์ด๋ณด์. for๋ฌธ์ผ๋ก ๋ฌดํ ๋ฐ๋ณต๋ฌธ์ ๋ง๋ค ๋๋ ์๊ดํธ ์์ ์ด๊น๊ฐ, ์กฐ๊ฑด์, ์ฆ๊ฐ์์ ๋ชจ๋ ๋นผ๊ณ ์ธ๋ฏธ์ฝ๋ก ๋ง ๋จ๊ธฐ๋ฉด ๋๋ค.
์์ ์์๋ ์ฌ์ฉ์๊ฐ ์ซ์๋ฅผ ์ ๋ ฅํ๊ธฐ ์ ๊น์ง ๋ฐ๋ณต๋ฌธ์ด ๋๋์ง ์๊ณ ์๋ค. ์ฌ์ฉ์๊ฐ ์ซ์๋ฅผ ์ ๋ ฅํ๊ธฐ ์ ๊น์ง ๊ณ์ํด์ '์ซ์๋ฅผ ์ ๋ ฅํ์ธ์->' ๋ถ๋ถ์ ๋ฉ์ถฐ์์๊ฒ์ด๋ค.
public class Main {
public static void main(String[] args) {
int sum=0;
for (;;){
System.out.println("์ซ์๋ฅผ ๋ฌดํ ๋ฐ๋ณตํด์ ๋ํ๋ ์ค์
๋๋ค.");
System.out.print("์ซ์๋ฅผ ์
๋ ฅํ์ธ์ ->");
Scanner num = new Scanner(System.in);
int num1 = num.nextInt();
sum = sum + num1;
System.out.println("๊ฒฐ๊ณผ" + sum);
}
}
}
๋ฐ๋ณต ๋ฒ์๋ ํ์๋ฅผ ์ง์ ํ๋ ์กฐ๊ฑด์ด ์์ด์ ๋ช ๋ น๋ฌธ์ ๋ฌดํ ๋ฐ๋ณตํด์ ์คํํ๋ค.
5.4.2. while๋ฌธ์ ์ด์ฉํ ๋ฌดํ ๋ฐ๋ณต๋ฌธ: while(true)
while๋ฌธ์ ์กฐ๊ฑด์ด ์ฐธ(true)์ผ ๋์ ๋ช ๋ น๋ฌธ์ ์คํํ๋ค. while ๋ฌธ์ ์กฐ๊ฑด์์ true๋ผ๋ boolean ๊ฐ์ ๋ฃ์ผ๋ฉด ํญ์ ์กฐ๊ฑด์ด ์ฐธ์ด ๋๊ณ , ์ด์ ์ํด ๋ฐ๋ณต๋ฌธ์ ๋น ์ ธ๋์ค์ง ๋ชปํ๊ณ ๋ฌดํ ๋ฐ๋ณตํ๊ฒ ๋๋ค.
public class Main {
public static void main(String[] args) {
int sum=0;
while(true){
System.out.println("์ซ์๋ฅผ ๋ฌดํ ๋ฐ๋ณตํด์ ๋ํ๋ ์ค์
๋๋ค.");
System.out.print("์ซ์๋ฅผ ์
๋ ฅํ์ธ์ ->");
Scanner num = new Scanner(System.in);
int num1 = num.nextInt();
sum = sum + num1;
System.out.println("๊ฒฐ๊ณผ" + sum);
}
}
}
5.4.3. ์ ์ํด์ผ ํ ์
๋ฌดํ ๋ฐ๋ณต๋ฌธ์ ์๋ชป ๋ง๋ค๋ฉด ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋์ง ์๊ณ ์์ํ ์คํ๋ ์ ์๋ค. ๊ทธ๋ฌ๋ฉด CPU๋ ๋ฉ๋ชจ๋ฆฌ ๋ฑ์ด ๊ณ์ ๋ญ๋น๋ ์ปดํจํฐ์ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ค. ์ด์ธ์๋ ์ฌ๋ฌ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ผ๋, ๋ฌดํ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ ๋๋ ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ ์ผ๋์ ๋๊ณ ์ข ๋ฃ ์กฐ๊ฑด์ ๋ช ํํ ๋ฃ์ด์ผ ํ๋ค.
5.5. ํ๋ก๊ทธ๋จ ํ๋ฆ ์ ์ดํ๊ธฐ
๋ฌดํ ๋ฐ๋ณต๋ฌธ์์ ๋น ์ ธ๋์ค๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น? Intelli J์ ์ค์ง ๋ฒํผ์ ๋๋ฅด๋ ๋ฐฉ๋ฒ๋ฐ์ ์์๊น?์ฌ์ค ์ค์ง ๋ฒํผ์ ๋๋ฅด๋ ๋ฐฉ๋ฒ์ ํ๋ก๊ทธ๋จ ์์ฒด๋ฅผ ์ข ๋ฃํ๋ ๋ฐฉ๋ฒ์ด๋ค.
ํ๋ก๊ทธ๋จ์ ๊ณ์ ์คํํ๋ฉด์ while ๋ฌธ์์๋ง ๋น ์ ธ๋์ค๊ณ ์ถ์ ์๋ ์์ํ ๋ฐ, ์ด๋ด ๊ฒฝ์ฐ์๋ break๋ฌธ์ ์ฌ์ฉํ๋ค. break๋ฌธ์ ํ๋ก๊ทธ๋จ์ ํ๋ฆ์ ๋ณ๊ฒฝํ๋ค.
5.5.1. break๋ก ๋ฐ๋ณต๋ฌธ ํ์ถํ๊ธฐ
๋ฐ๋ณต๋ฌธ์์ break๋ฌธ์ ๋ง๋๋ฉด ์กฐ๊ฑด๊ณผ ์๊ด ์์ด ๋ฐ๋ณต๋ฌธ์ ํ์ถํ๋ค.
while(true){
[์คํ๋ฌธ];
break;
}
์์์ ์์ฑํ ์ซ์๋ฅผ ์ ๋ ฅํ์ฌ ๋ํ๋ while(true)๋ฌธ์ ๊ฐ์กฐํด์, ๋ํ ๊ฐ์ด 10,000์ ๋์ผ๋ฉด ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๋ ์ฝ๋๋ก ๋ฐ๊ฟ๋ณด์.
public class Main {
public static void main(String[] args) {
int sum=0;
while(true){
System.out.println("์ซ์๋ฅผ ๋ฌดํ ๋ฐ๋ณตํด์ ๋ํ๋ ์ค์
๋๋ค.");
System.out.print("์ซ์๋ฅผ ์
๋ ฅํ์ธ์ ->");
Scanner num = new Scanner(System.in);
int num1 = num.nextInt();
sum = sum + num1;
System.out.println("๊ฒฐ๊ณผ" + sum);
if (sum > 10000){
break;
}
}
}
}
if ๊ฐ์ ์กฐ๊ฑด๋ฌธ ์์ด while(true) ๋ฐ๋ณต๋ฌธ ์์ ๊ทธ๋ฅ break๊ฐ ์์ผ๋ฉด, break ์ ๊น์ง ์ฆ ์ฒซ ๋ฒ์งธ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ง ์ถ๋ ฅํ๊ณ ๋ฐ๋ก ๋๋๋ฒ๋ฆฐ๋ค. ๊ทธ๋์ if ๋ฌธ์ผ๋ก ๋ฌดํ ๋ฐ๋ณต๋ฌธ์ ์ข ๋ฃํ๋ ์กฐ๊ฑด์ ์ค์ break ๋ฌธ์ ์คํํ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ฝ while๋ฌธ ๋ฐ์ 'ํ์ถํ์ต๋๋ค'๋ฅผ ์ถ๋ ฅํ๋ ์ฝ๋๊ฐ ์์ผ๋ฉด ์ด๊ฑด ์ถ๋ ฅ๋๋ค. ์๋ํ๋ฉด berak๋ฌธ์ while๋ฌธ์ ํ์ถํ๋๊ฑฐ์ง ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๋๊ฑด ์๋๊ธฐ ๋๋ฌธ์ด๋ค.
5.5.2. continue๋ก ๋ฐ๋ณต ๊ตฌ๊ฐ ๊ฑด๋๋ฐ๊ธฐ โ
๋ฐ๋ณต๋ฌธ์ ํ์ถํ์ง ์๊ณ , ํน์ ๊ตฌ๊ฐ๋ง ๊ฑด๋๋ธ ์๋ ์๋ค. ์ด๋๋ continue ๋ฌธ์ ์ฌ์ฉํ๋ค. while๋ฌธ์ ๋ฐ๋ณตํ๋ค๊ฐ continue๋ฌธ์ ๋ง๋๋ฉด ํ์ฌ ๋ฐ๋ณต์ ์ค๋จํ๊ณ (๋ง์ฝ ์ฒซ ๋ฒ์งธ ๋ฐ๋ณต์ด๋ผ๋ฉด ์ด ๋ฐ๋ณต์ ์ค๋จํ๊ณ ) ๋ค์ ๋ฐ๋ณต์ผ๋ก ๋์ด๊ฐ๋ค(๋ ๋ฒ์งธ ๋ฐ๋ณต์ผ๋ก ๋์ด๊ฐ๋ค). ์ด๋ continue ๋ฌธ ๋ค์ ๋๋ ์ฝ๋๋ ์ํํ์ง ์๋๋ค.
continue ๋ฌธ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์์ ์ ํจ๊ป ์ดํด๋ณด์. ์์ ๋์ผํ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฅ๊ฐ์ด ์ง์์ผ ๋๋ง ๊ฐ์ ๋ํ๋ ์ฝ๋๋ก ๊ฐ์กฐํ ๊ฒ์ด๋ค.
public class Main {
public static void main(String[] args) {
int sum=0;
while(true){
System.out.println("์ซ์๋ฅผ ๋ฌดํ ๋ฐ๋ณตํด์ ๋ํ๋ ์ค์
๋๋ค.");
System.out.print("์ซ์๋ฅผ ์
๋ ฅํ์ธ์ ->");
Scanner num = new Scanner(System.in);
int num1 = num.nextInt();
//num1์ด ํ์์ธ์ง ํ๋จํ๋ ค๋ฉด ์ฌ๊ธฐ์ continue๋ฌธ์ ์์ฑํด์ผ ํ๋ค.
if (num1 % 2 == 1){
System.out.println("ํ์์
๋๋ค. ์ง์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์");
continue;
}
sum = sum + num1;
System.out.println("๊ฒฐ๊ณผ" + sum);
if (sum > 10000){
break;
}
}
}
}
-> ์ถ๊ฐํ if ๋ฌธ์ ์กฐ๊ฑด์์์ i๊ฐ ํ์์ผ๋๋(true) if ๋ฌธ ์์ continue๊ฐ ์คํ๋ ์ดํ ์ฝ๋๋ฅผ ์คํํ์ง ์๊ณ while ๋ฌธ์ ์กฐ๊ฑด์์ผ๋ก ๋ค์ ๋์๊ฐ๋ค.
5.5.3. ์ค์ต: ๊ตฌ๊ตฌ๋จ ํ๋ก๊ทธ๋จ ๊ฐ์ ํ๊ธฐ
5.1.4 ์ค์ต์์ ์์ฑํ ๊ตฌ๊ตฌ๋จ์ ๋จ ํ๋๋ฅผ ์ ๋ ฅ๋ฐ์ ์ถ๋ ฅํ ๋ค์ ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ์๋ค. ์ด๋ฒ์๋ ์ข ๋ฃ ์กฐ๊ฑด์ ๋ง๋๊ธฐ ์ ๊น์ง ๋ฐ๋ณต ์คํํ๋๋ก ์ฝ๋๋ฅผ ์์ ํด๋ณผ๊ฒ์ด๋ค.
while๋ฌธ์ผ๋ก ๋ฌดํ ๋ฐ๋ณต๋ฌธ์ ์์ฑํ๊ณ for๋ฌธ์ผ๋ก ์์ฑํ ๊ตฌ๊ตฌ๋จ ์ฝ๋๋ฅผ while๋ฌธ ์์ ๋ฃ๋๋ค. for๋ฌธ ์์ if๋ฌธ์ผ๋ก ๋ฐ๋ณต๋ฌธ์ ์ข ๋ฃ ์กฐ๊ฑด์ ์ค์ ํ๋ค. ์ฌ๊ธฐ์๋ 0์ ์ ๋ ฅ๋ฐ์ผ๋ฉด ๋ฐ๋ณต๋ฌธ์ ํ์ถํ๊ฒ ํ ๊ฒ์ด๋ค. if ๋ฌธ์ผ๋ก ์ ๋ ฅ๋ฐ์ ๊ฐ์ด 0์ธ์ง ํ๋จํ๊ณ 0์ด๋ฉด ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๋ค๋ ๋ฌธ๊ตฌ๋ฅผ ์ถ๋ ฅํ ํ break๋ฌธ์ผ๋ก ๋ฐ๋ณต๋ฌธ์ ํ์ถํ๋ค.
public class Main {
public static void main(String[] args) {
System.out.println("**** ๊ตฌ๊ตฌ๋จ ํ๋ก๊ทธ๋จ์ ์์ํฉ๋๋ค ****");
System.out.println("(์ข
๋ฃํ๋ ค๋ฉด '0'์ ์
๋ ฅํ์ธ์)");
while (true){
System.out.print("์ถ๋ ฅํ ๋จ์ ์
๋ ฅํ์ธ์:");
Scanner scan = new Scanner(System.in);
int dan = scan.nextInt();
int sum;
if (dan == 0){
break;
}
for (int i=1; i<=9; i++){
sum = dan * i;
System.out.printf("%d x %d = %d\n", dan, i, sum);
}
}
System.out.println("**** ๊ตฌ๊ตฌ๋จ ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํฉ๋๋ค ****");
}
}
์ฝ๋๋ฅผ ์คํํ๋ฉด ํ๋ก๊ทธ๋จ ์์ ๋ฌธ๊ตฌ๋ฅผ ์ถ๋ ฅํ๊ณ ์ ๋ ฅ์ ๊ธฐ๋ค๋ฆฐ๋ค.
์ถ๋ ฅํ ๋จ์ ์ ๋ ฅ๋ฐ์ ํ์ ์ด ๊ฐ์ด 0์ธ์ง ํ๋จํด์ผ ํ๋ฏ๋ก, ์ฌ์ฉ์๋ก๋ถํฐ dan์ ์ ๋ ฅ๋ฐ์ ํ if๋ฌธ์ผ๋ก 0์ธ์ง ํ๋จํ๊ณ , ๊ทธ ์๋์
5.5.4. QUIZ
๋ค์ ์ฝ๋๋ฅผ ์คํํ๋ฉด ์ด๋ค ๊ฒฐ๊ณผ๊ฐ ๋์ฌ์ง ๊ณ ๋ฅด์ธ์
for (int i=0; i<20; i++){
if (i%2 == 0){
System.out.println("์ง์");
}
else{
System.out.println("ํ์");
}
berak;
}
๋ด๊ฐ ์๊ฐํ ๋ต) - ์๋
'์ง์'์ 'ํ์'๊ฐ ๋ฒ๊ฐ์ 10๋ฒ์ฉ ์ถ๋ ฅ๋๊ณ ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๋ค.
๋ต)
'์ง์'๊ฐ ํ ๋ฒ ์ถ๋ ฅ๋๊ณ ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๋ค
-> break๋ฌธ์ ๋ชป ๋ด........................................................................................์ฝ๋๋ฅผ ๋๊น์ง ์ฝ์ง........................
๋ง๋ฌด๋ฆฌ
1. ๋ฐ๋ณต๋ฌธ
๋ฐ๋ณต๋ฌธ์ ๊ฐ์ ๋ช ๋ น์ ๋ฐ๋ณตํด์ ์คํํ ๋ ์ฌ์ฉํ๋ค.
2. for ๋ฌธ
(1) ๋ํ์ ์ธ ๋ฐ๋ณต๋ฌธ์ผ๋ก, ์ ํด์ง ํ์๋ ๋ฒ์๋งํผ ๋ฐ๋ณตํ ๋ ์ฌ์ฉํ๋ค.
for (์ด๊ธฐ๊ฐ, ์กฐ๊ฑด์, ์ฆ๊ฐ์){
์คํ๋ฌธ;
}
(2) ์ด๊ธฐ๊ฐ์ ๋ฐ๋ณต ๋ฒ์์ ์์๊ฐ์ด๋ค. ๋ณ์์ ๊ฐ์ ๋ฃ์ด ์ด๊ธฐํํ๋ ๋ฐฉ์์ผ๋ก ์์ฑํ๊ณ , ๋ฐ๋ณต๋ฌธ์ ์ฒ์ ์คํํ ๋ ํ ๋ฒ ์ํํ๋ค.
(3) ์กฐ๊ฑด์์๋ ๋ฐ๋ณต ๋ฒ์ ๋๋ ํ์๋ฅผ ๋ฃ๋๋ค.
(3) ์ฆ๊ฐ์์์๋ ๋ณ์ ๊ฐ์ ์ฆ๊ฐ์ํค๊ฑฐ๋ ๊ฐ์์์ผ์ ๋ฐ๋ณต ํ์๋ฅผ ์กฐ์ ํ๋ค.
3. ์ฆ๊ฐ ์ฐ์ฐ์ ?????
(1) ++, --๊ฐ ์์ผ๋ฉฐ ์ฆ๊ฐ ์ฐ์ฐ์๊ฐ ์ด๋์ ์์นํ๋๋์ ๋ฐ๋ผ ์ ์ ์ฆ๊ฐ ์ฐ์ฐ์์ ํ์ ์ฆ๊ฐ ์ฐ์ฐ์๋ก ๋๋๋ค.
์ฆ๊ฐ ์ฐ์ฐ์ | ์ค๋ช |
i++ | i๊ฐ์ ๋จผ์ ์ฌ์ฉํ ํ i+1์ ์ํ |
i-- | i๊ฐ์ ๋จผ์ ์ฌ์ฉํ ํ i-1์ ์ํ |
++i | i+1์ ํ ํ์ i๊ฐ์ ์ฌ์ฉ |
--i | i-1์ ํ ํ์ i๊ฐ์ ์ฌ์ฉ |
4. ์ค์ฒฉ ๋ฐ๋ณต๋ฌธ
์ค์ฒฉ ๋ฐ๋ณต๋ฌธ์ด๋ ๋ฐ๋ณต๋ฌธ ์์ ๋ค๋ฅธ ๋ฐ๋ณต๋ฌธ์ด ์๋ ํํ๋ฅผ ๋งํ๋ค.
5. while ๋ฌธ
while๋ฌธ์ ์กฐ๊ฑด์์ด ์ฐธ์ธ ๋์ while ๋ฌธ ์์ ๋ช ๋ น๋ฌธ์ ๋ฐ๋ณตํด์ ์คํํ๋ค.
while (์กฐ๊ฑด์){
์คํ๋ฌธ;
}
6. do-while ๋ฌธ
do-while ๋ฌธ์ ์กฐ๊ฑด์๊ณผ ์๊ด์์ด ๋ฌด์กฐ๊ฑด ํ ๋ฒ์ ๋ช ๋ น๋ฌธ์ ์คํํ ํ, ์กฐ๊ฑด์ด ์ฐธ์ผ ๋์ ๋ฐ๋ณตํ๋ค. ์กฐ๊ฑด์ด ์ฐธ์ด ์๋๋ผ๋ฉด ๋ฐ๋ณต๋ฌธ์ ๋น ์ ธ๋๊ฐ๋ค.
do{
์คํ๋ฌธ;
} while(์กฐ๊ฑด์);
7. ๋ฌดํ ๋ฐ๋ณต๋ฌธ
(1) ๋ฐ๋ณต๋ฌธ์ด ๋๋์ง ์๊ณ ๋ฌดํํ ๋ฐ๋ณต๋๋ฉด ์ด๋ฅผ ๋ฌดํ ๋ฐ๋ณต๋ฌธ ๋๋ ๋ฌดํ ๋ฃจํ๋ผ๊ณ ํ๋ค.
(2) ํ๋ก๊ทธ๋จ์์ ์๋์ ์ผ๋ก ๋ฌดํ ๋ฐ๋ณต๋ฌธ์ ์์ฑํ๊ธฐ๋ ํ๋ค.
(3) for (;;) / while(true)๋ก ๋ฌดํ ๋ฐ๋ณต๋ฌธ์ ๊ตฌํํ ์ ์๋ค.
8. ํ๋ก๊ทธ๋จ ํ๋ฆ ์ ์ด
(1) ๋ฐ๋ณต๋ฌธ์์ break ๋ฌธ์ ๋ง๋๋ฉด ๋ฐ๋ณต๋ฌธ์ ํ์ถํ๋ค. ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๋ ๊ฒ์ด ์๋๋ผ ๋ฐ๋ณต๋ฌธ์ ์ค๋จํ๊ณ ๋ค์ ์ฝ๋๋ก ๋์ด๊ฐ๋ค. ๋ฌดํ ๋ฐ๋ณต์์ ๋น ์ ธ๋์ฌ ๋ ์ฃผ๋ก break ๋ฌธ์ ์ฌ์ฉํ๋ค.
(2) ๋ฐ๋ณต๋ฌธ์์ continue ๋ฌธ์ ๋ง๋๋ฉด, ํ์ฌ ๋ฐ๋ณต์ ์ค๋จํ๊ณ ๋ค์ ๋ฐ๋ณต์ผ๋ก ๋์ด๊ฐ๋ค. ๋ฐ๋ณต๋ฌธ์ ์ค๋จํ๋ ๊ฒ์ด ์๋๋ผ ํ์ฌ ๋ฐ๋ณต์ ๊ฑด๋๋ฐ๋ ์ญํ ์ด๋ค.
์ ํ ์ฒดํฌ โ โ โ
์กฐ๊ฑด)
1. while ๋ฌธ์ ์ฌ์ฉํ ๋ฌดํ ๋ฐ๋ณต๋ฌธ์ผ๋ก ์์ฑํ๋ค.
2. ์ด๊ธฐ ์คํํ๋ฉด์ ๋ค์๊ณผ ๊ฐ๋ค.
3. ์๋ฃ ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ฉด ์๋ฃ ๊ฐ๊ฒฉ๊ณผ ํ์ฌ ํฌ์ ๋ ๊ธ์ก์ ๋น๊ตํ๋ค. ํ์ฌ ํฌ์ ๋ ๊ธ์ก์ด ๋ ํฌ๋ฉด ๊ธ์ก์์ ์๋ฃ ๊ฐ๊ฒฉ์ ๋บ ํ ์๋ฃ ์ ํ ํ๋ฉด์ผ๋ก ๋์๊ฐ๋ค. ํ์ฌ ํฌ์ ๋ ๊ธ์ก์ด ๋ ์ ์ผ๋ฉด ๊ธ์ก์ด ๋ถ์กฑํ๋ ๋์ ๋ ํฌ์ ํ๋ผ๊ณ ์๋ดํ๋ค.
4. ๊ธ์ก์ ์ ๋ ฅ๋ฐ์ ํ์ฌ ํฌ์ ๋ ๊ธ์ก๊ณผ ํฉ์น๋ค.
5. 4๋ฅผ ์ ๋ ฅํ๋ฉด ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ๋ค. ํ๋ก๊ทธ๋จ์ ์ข ๋ฃํ ๋๋ ๋ง์ง๋ง์ return; ๋ช ๋ น์ด๋ฅผ ์ถ๊ฐํด๋ผ
6. ๊ทธ ์ธ ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ฉด ๋ค์ ์ ํํ๋๋ก ์๋ดํ๋ค.
๊ตฌ์)
1. while๋ฌธ์ผ๋ก ์ ์ฒด ์ฝ๋ ๊ฐ์ธ๊ธฐ + while๋ฌธ ๋ฐ์ return; ์์ฑ
2. '๋์ ๋ฃ์ด์ฃผ์ธ์:' -> ๋ ์ ๋ ฅ๋ฐ๊ธฐ
3. ์ด๊ธฐ ์คํํ๋ฉด ์์ฑ
4. '์๋ฃ๋ฅผ ๊ณ ๋ฅด์ธ์: ' -> ๋ฒํธ ์ ๋ ฅ๋ฐ๊ธฐ
5. if ๋ฌธ์ผ๋ก 1-4 ์ ๋ ฅ ๊ฒฝ์ฐ ๋๋๊ณ , ์์ ๋ if๋ฅผ ์ฌ์ฉํด ํ์ฌ ๊ธ์ก๊ณผ ์๋ฃ ๊ฐ๊ฒฉ ๋น๊ตํ๊ธฐ -> true๋ฉด '00์ ๊ตฌ๋งคํ์ จ์ต๋๋ค', false๋ฉด '๋ ๋ ๋ฃ์ด' + continue๋ฅผ ์ฌ์ฉํด ๋ ์ ๋ ฅ๋ฐ๋ ๋ถ๋ถ์ผ๋ก ๋์๊ฐ๊ธฐ
7. ์ฐธ๊ณ ๋ก if 4์์๋ breakํ๊ธฐ
8. else์์๋ ๊ทธ ์ธ์ ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ฉด ๋ค์ ์ ํํ๋๋ก ์๋ดํ๊ธฐ
๋ฌธ์ )
1. ๋์ด ๋ถ์กฑํ๋ฉด ๋์ ๋ ํฌ์ ํ์ง๋ง, Money๊ฐ์ด ์ด๊ธฐํ๋์ด ์ถ๊ฐ๋ก ํฌ์ ๋ ๋๋ง์ด Money๊ฐ ๋จ(๊ธฐ์กด์ Money๋ฅผ ์ ์งํด์ผํจ)
2. ์๋ฃ๋ฅผ ์ฐ ๋ค์ '๋์ ํฌ์
ํ์ธ์' ๋ถ๋ถ์ผ๋ก ๊ฐ...(๊ทผ๋ฐ ์ด๊ฑด ๊ทธ๋ฅ ๊ฑด๋ค์ง ์๋๊ฒ ๋์๋ฏ? ์กฐ๊ฑด์๋ ์ด๊ฑฐ์ ๋ํ ์ด์ผ๊ธฐ๋ ์์์)
3. -๊ธ์ก์ด ๋์ด๋ ์กฐ๊ฑด๋ฌธ์ ๊ฑธ๋ฆฌ์ง ์๊ณ ์๋ฃ ๊ตฌ๋งค๊ฐ ๊ฐ๋ฅํ๋ค...?
๋ด ์ฝ๋)
์ค๋ฅ๊ฐ ๋ง๋ค
public class Main {
public static void main(String[] args) {
//saveMoney ๋ณ์ ์ด๊ธฐํ
int saveMoney = 0;
while(true){
//Money ๋ณ์ ๊ฐ ์
๋ ฅ๋ฐ๊ธฐ
System.out.print("๋์ ๋ฃ์ด์ฃผ์ธ์: ");
Scanner scanMoney = new Scanner(System.in);
int Money = scanMoney.nextInt();
saveMoney = saveMoney + Money;
System.out.println("**** ์ํ๊ธฐ ํ๋ก๊ทธ๋จ์ ์์ํฉ๋๋ค. ****\n");
System.out.printf("ํ์ฌ ํฌ์
๋ ๊ธ์ก:%d์\n", saveMoney);
System.out.println("1. ์ฝ๋ผ (1,500์)");
System.out.println("2. ์ค๋ ์ง์ฃผ์ค (2,000์)");
System.out.println("3. ์์ (1,000์)");
System.out.println("4. ์ข
๋ฃ");
System.out.print("์๋ฃ๋ฅผ ๊ณ ๋ฅด์ธ์. (๋ฒํธ ์
๋ ฅ):");
Scanner scanNum = new Scanner(System.in);
int Num = scanNum.nextInt();
if (Num ==1){
if (saveMoney >= 1500){
System.out.println("์ฝ๋ผ๋ฅผ ๊ตฌ๋งคํ์
จ์ต๋๋ค.");
saveMoney = saveMoney-1500;
}
else{
System.out.println("๊ธ์ก์ด ๋ถ์กฑํ๋ ๋์ ๋ ํฌ์
ํด์ฃผ์ธ์.");
continue;
}
}
else if (Num ==2){
if (saveMoney >= 1500){
System.out.println("์ค๋์ง์ฃผ์ค๋ฅผ ๊ตฌ๋งคํ์
จ์ต๋๋ค.");
saveMoney = saveMoney-2000;
}
else{
System.out.println("๊ธ์ก์ด ๋ถ์กฑํ๋ ๋์ ๋ ํฌ์
ํด์ฃผ์ธ์.");
continue;
}
}
else if (Num ==3){
if (saveMoney >= 1500){
System.out.println("์์๋ฅผ ๊ตฌ๋งคํ์
จ์ต๋๋ค.");
saveMoney = saveMoney-1000;
}
else{
System.out.println("๊ธ์ก์ด ๋ถ์กฑํ๋ ๋์ ๋ ํฌ์
ํด์ฃผ์ธ์.");
continue;
}
}
else if (Num ==4){
System.out.println("**** ์ํ๊ธฐ ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํฉ๋๋ค. ****");
break;
}
else {
System.out.println("๋ฒํธ๊ฐ ์ฌ๋ฐ๋ฅด์ง ์์ต๋๋ค. ๋ค์ ์ ํํด์ฃผ์ธ์.");
continue;
}
}
}
}
์ ๋ต ์ฝ๋) โ
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int money = 0;
System.out.println("**** ์ํ๊ธฐ ํ๋ก๊ทธ๋จ์ ์์ํฉ๋๋ค ****");
while(true){
System.out.println("\nํ์ฌ ํฌ์
๊ธ์ก" + money + "์");
System.out.println("1. ์ฝ๋ผ (1,500์)\n2. ์ค๋ ์ง์ฃผ์ค (2,000์)");
System.out.println("3. ์์ (1,000์)\n4. ์ข
๋ฃ");
System.out.println("์๋ฃ๋ฅผ ๊ณ ๋ฅด์ธ์. (๋ฒํธ ์
๋ ฅ): ");
//์๋ฃ ๋ฒํธ ์
๋ ฅ๋ฐ๊ธฐ
int choice = scan.nextInt();
switch (choice){
case 1:
if (money >= 1500){
money = money - 1500;
System.out.println("์ฝ๋ผ๋ฅผ ์ ํํ์ต๋๋ค. ๋จ์ ๊ธ์ก: " + money + "์\n");
}
else {
System.out.println("๊ธ์ก์ด ๋ถ์กฑํฉ๋๋ค. ๋์ ๋ ํฌ์
ํ์ธ์.");
}
break;
case 2:
if (money >= 2000){
money = money - 2000;
System.out.println("์ค๋์ง์ฃผ์ค๋ฅผ ์ ํํ์ต๋๋ค. ๋จ์ ๊ธ์ก: " + money + "์\n");
}
else {
System.out.println("๊ธ์ก์ด ๋ถ์กฑํฉ๋๋ค. ๋์ ๋ ํฌ์
ํ์ธ์.");
}
break;
case 3:
if (money >= 1000){
money = money - 1000;
System.out.println("์์๋ฅผ ์ ํํ์ต๋๋ค. ๋จ์ ๊ธ์ก: " + money + "์\n");
}
else {
System.out.println("๊ธ์ก์ด ๋ถ์กฑํฉ๋๋ค. ๋์ ๋ ํฌ์
ํ์ธ์.");
}
break;
case 4:
System.out.println("ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํฉ๋๋ค.");
scan.close();
return;
default:
System.out.println("์๋ชป๋ ๋ฒํธ์
๋๋ค. ๋ค์ ์ ํํด์ฃผ์ธ์");
}
System.out.print("๋์ ํฌ์
ํ์ธ์.(0์ ์
๋ ฅํ๋ฉด ๋ฉ๋ด๋ก ๋์๊ฐ๋๋ค): ");
int money2 = scan.nextInt();
if (money2 > 0){
money += money2;
}
else{
System.out.println("๋ฉ๋ด๋ก ๋์๊ฐ๋๋ค.\n");
}
}
}
}
-> case๋ฌธ๊ณผ if๋ฌธ์ ํจ๊ป ์ฐ๋ ๋ฐฉ๋ฒ์ ์ด๋ ๊ตฌ๋
-> case๋ฌธ์ default๋ฅผ ๊น๋จน๊ณ ์์๋ค.
-> ๋จ์ ๊ธ์ก์ money2๋ก ํด์ switch๋ฌธ ๋ฐ-while๋ฌธ ์์ ๋ง์ง๋ง ๋ถ๋ถ์ ์์ฑํ๋ค!!
'๐ฆ Private > Java Language' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
6์ฅ - ์ฌ๋ฌ ๊ฐ ํ ๋ฒ์ ์ ์ฅํ๊ธฐ: ๋ฐฐ์ด (0) | 2025.03.05 |
---|---|
4์ฅ - ์กฐ๊ฑด์ ๋ฐ๋ผ ํ๋ฆ ๋ฐ๊พธ๊ธฐ: ์กฐ๊ฑด๋ฌธ (0) | 2025.02.16 |
3์ฅ - ๊ธฐ์ด ๋ฌธ๋ฒ ๋ฐฐ์ฐ๊ธฐ (0) | 2025.02.13 |
2์ฅ - ์ ์ถ๋ ฅ ๋ค๋ฃจ๊ธฐ (1) | 2025.02.11 |
1์ฅ - Hello, Java! (1) | 2025.02.11 |