▶오늘의 주제 :반복문: for문, while문, do-while문
: 제어문의 종류는 조건문과 반복문이 있는데, 조건문에는 앞 절에서 배운 if문, switch문이 있고, 반복문에는 이번 절에서 배울 for문, while문, do-while 문이 있습니다. 제어문 블록이 실행 완료되었을 때 조건문일 경우는 정상 흐름으로 돌아오지만, 반복문일 경우는 제어문 처음으로 다시 되돌아가 반복 실행합니다. 이것을 루핑(looping)이라고 합니다.
▶for문
: 주어진 횟수만큼 실행문을 반복 실행할 때 적합한 반복 제어문입니다.
public class Practice {
public static void main(String[] args) {
System.out.println("어떤 혜택을 원하세요?");
for(int i=1; i<=10; i++) {
System.out.println(i);
}
}
}
1
2
3
4
5
6
7
8
9
10
- 1~100까지 합을 출력
public class Practice {
public static void main(String[] args) {
int sum = 0;
for(int i=1; i<=100; i++) {
sum += i;
}
System.out.println("1~100 합: " + sum);
}
}
1~100 합: 5050
- 1~100까지 합을 출력
public class Practice {
public static void main(String[] args) {
int sum = 0;
int i = 0;
for(i=1; i<=100; i++) {
sum += i;
}
System.out.println("1~" + (i-1) + " 합 : " + sum);
}
}
1~100 합 : 5050
: 변수 i를 for문의 초기화식에서 선언하지 않고 for문 전에 선언하였다면 for문 내부뿐만 아니라 for문을 벗어나서도 사용 할 수 있습니다.
- float 타입 카운터 변수
public class Practice {
public static void main(String[] args) {
for(float x=0.1f; x<=1.0f; x+=0.1f) {
System.out.println(x);
}
}
}
0.1
0.2
0.3
0.4
0.5
0.6
0.70000005
0.8000001
0.9000001
▶중첩 for문
: for문은 또 다른 for문을 내포할 수 있는데, 이것을 중첩 for문이라고 합니다. 이 경우 바깥쪽 for문이 한 번 실행할 때마다 중첩된 for문은 지정된 횟수만큼 반복해서 돌다가 다시 바깥쪽 for문으로 돌아갑니다.
public class Practice {
public static void main(String[] args) {
for (int m=2; m<=9; m++) {
System.out.println("*** " + m + "단 ***");
for (int n=1; n<=9; n++) {
System.out.println(m + " x " + n + " = " + (m*n));
}
}
}
}
*** 2단 ***
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
*** 3단 ***
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27
*** 4단 ***
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
*** 5단 ***
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
*** 6단 ***
6 x 1 = 6
6 x 2 = 12
6 x 3 = 18
6 x 4 = 24
6 x 5 = 30
6 x 6 = 36
6 x 7 = 42
6 x 8 = 48
6 x 9 = 54
*** 7단 ***
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
*** 8단 ***
8 x 1 = 8
8 x 2 = 16
8 x 3 = 24
8 x 4 = 32
8 x 5 = 40
8 x 6 = 48
8 x 7 = 56
8 x 8 = 64
8 x 9 = 72
*** 9단 ***
9 x 1 = 9
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 x 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81
▶while문
: 조건식 true일 경우에 계속해서 반복합니다.
public class Practice {
public static void main(String[] args) {
int i = 1;
while (i<=10) {
System.out.println(i);
i++;
}
}
}
1
2
3
4
5
6
7
8
9
10
- 1~100까지 출력
public class Practice {
public static void main(String[] args) {
int sum = 0;
int i = 1;
while(i<=100) {
sum += i;
i++;
}
System.out.println("1~" + (i-1) + "합 : " + sum);
}
}
1~100합 : 5050
▶do-while문
: 시작할 때부터 조건식을 검사하여 블록 내부의 실행문을 우선 실행하고 실행결과에 따라서 반복 실행을 계속할지 결정할 수도 있습니다.
▶break문
: 반복문인 for문, while문, do-while문의 실행을 중지할 때 사용됩니다.
조건식에는 boolean 타입 변수나 ture/false 값을 산출하는 어떠한 연산식이든 올 수 있습니다. while문을 종료시키기 위해서는 변수의 값을 false로 만들거나, break문을 이용하는 방법이 있습니다.
▶continue문
: continue문은 반복문인 for문, while문, do-while문에서만 사용되는데, 블록 내부에서 continue문이 실행되면 for문의 증감식 또는 while문, do-while 문의 조건식으로 이동합니다.
public class Practice {
public static void main(String[] args) {
while(true) {
int num = (int) (Math.random() * 6) + 1;
System.out.println(num);
if(num == 6) {
break;
}
}
System.out.println("프로그램 종료");
}
}
1
5
3
5
6
프로그램 종료
(바깥쪽 반복문 종료)
public class Practice {
public static void main(String[] args) {
Outter: for(char upper='A'; upper<='Z'; upper++) {
for(char lower='a'; lower<='z'; lower++) {
System.out.println(upper + "-" + lower);
if(lower=='g') {
break Outter;
}
}
}
System.out.println("프로그램 실행 종료");
}
}
A-a
A-b
A-c
A-d
A-e
A-f
A-g
프로그램 실행 종료
(continue문)
public class Practice {
public static void main(String[] args) {
for(int i=1; i<=10; i++) {
if(i%2 !=0) {
continue;
}
System.out.println(i);
}
}
}
2
4
6
8
10
*퀴즈
: for문을 이용해서 1부터 100까지의 정수 중에서 3의 배수의 총합을 구하는 코드를 작성해 보세요.
public class Practice {
public static void main(String[] args) {
int sum = 0;
for(int i=1; i<=100; i++) {
if (i % 3 == 0)
sum += i;
}
System.out.println("3의 배수의 합 : " + sum);
}
}
3의 배수의 합 : 1683
▶마무리
1. for문 : for(초기화식; 조건식; 증감식) {...}을 말하며 조건식이 true가 될 때까지만 중괄호 내부를 반복합니다. 반복할 때마다 증감식이 실행됩니다. 초기화식은 조건식과 증감식에서 사용할 루프 카운터 변수를 초기화합니다.
2. while문 : while(조건식) {...} 을 말하며 조건식이 true가 될 때까지만 중괄호 내부를 반복 실행합니다.
3. do-while문 : do {...} while(조건식); 을 말하며 먼저 do 중괄호 내부를 실행하고 그다음 조건식이 true가 되면 다시 중괄호 내부를 반복 실행합니다.
4.break문 : for문, while문, do-while문 내부에서 실행되면 반복을 취소합니다.
5. continue문 : for문, while문, do-while문 내부에서 실행되면 증감식 또는 조건식으로 돌아갑니다.
'Java' 카테고리의 다른 글
Java - 배열 (0) | 2022.11.11 |
---|---|
Java - 참조 타입과 참조 변수 (0) | 2022.11.11 |
Java - 조건문: if문, switch문 (0) | 2022.11.10 |
Java - 연산자의 종류 (0) | 2022.11.08 |
Java - 연산자와 연산식 (0) | 2022.11.08 |