반복문
while문
while(조건식) {
수행문1; // 조건식이 참인 동안 반복 수행
}
package selfstudy;
public class WhileEx1{
public static void main(String[] args) {
int num = 1;
int sum = 0;
while(num <= 10) { // num값이 10보다 작거나 같을 동인
sum += num; // 합계를 뜻하는 sum에 num을 더하고
num++; // num에 1씩 더해 나감
}
System.out.println("1부터 10까지의 합은 " + sum + "입니다.");
}
}
while문이 무한히 반복되는 경우
while(true) {
...
}
- while문의 구조를 보면 조건식이 참이면 반복합니다.
- while문을 상기 코드와 같이 사용하면 조건이 항상 참이 되어 무한 반복합니다.
do-while문
- while문은 조건을 먼저 검사하기 때문에 조건식이 맞기 않으면 반복 수행이 한 번도 일어나지 않습니다.
- do-while문은 {}안의 문장을 무조건 한 번 수행한 후에 조건식을 검사합니다. 즉, 조건이 만족하는지 여부를 마지막에 검사하는 것입니다.
- 중괄호 안의 문장을 반드시 한 번 이상 수행해야 할 때 while문 대신 do-while문을 사용합니다.
do {
수행문1;
...
} while(조건식);
package selfstudy;
public class WhileEx2{
public static void main(String[] args) {
int num = 1;
int sum = 0;
do {
// 주어진 조건이 참이 아니더라도 무조건 한 번 수행함
sum += num;
num++;
} while(num <= 10);
System.out.println("1부터 10까지의 합은 " + sum + "입니다.");
}
}
for문
- 반복문 중에서 가장 많이 사용하는 반복문이 for문 입니다.
- for문은 반복문을 구현하는데 필요한 여러 요소(변수의 초기화식, 조건식, 증감식)를 함께 작성하여야 하므로 while문이나 do-while문 보다 구조가 조금 더 복잡합니다.
for문의 기본구조
for(초기화식; 조건식; 증감식) {
수행문;
}
- 초기화식 : for문이 시작할 때 딱 한번만 수행하며 사용할 변수를 초기화합니다.
- 조건식 : 언제까지 반복수행할 것인지 구현합니다.
- 증감식 : 반복 횟수나 for문에서 사용하는 변수 값을 1만큼 늘리거나 줄입니다.
1부터 5까지 출력하는 프로그램 예시
1. 처음 for문이 시작할 때 출력할 숫자인 num을 1로 초기화합니다
2. 조건식 num <=5를 검사했을 때 num은 1이므로 참입니다.
3. 조건식이 참이기 때문에 for문의 System.out.println(num);을 수행하고 1을 출력합니다.
4. 증감식 num++를 수행하여 num값이 2가 됩니다.
2. 조건식 num<=5를 검사했을 때 num값은 2이므로 참입니다.
3. 조건식이 참이기 때문에 for문의 System.out.println(num);을 수행하고 2을 출력합니다.
4. 증감식 num++를 수행하여 num값은 3이 됩니다.
... 반복...
2. 조건식 num <=5를 검사했을 때 num 값은 6이므로 거짓입니다. for문이 끝납니다.
package selfstudy;
public class WhileEx3{
public static void main(String[] args) {
int i;
int sum;
for (i = 1, sum = 0; i <= 10; i++) {
sum += i;
}
System.out.println("1부터 10까지의 합은 " + sum + "입니다.");
}
}
실행결과
1부터 10까지의 합은 55입니다.
for문을 자주 사용하는 이유
- for문을 가장 많이 사용하는 이유는 반복 횟수를 관리할 수 있기 때문입니다.
- while문으로 작성한 코드를 살펴보면 num의 초기화와 조건 비교, 증감식을 따로 구현했습니다.
- 하지만 for문을 사용하여 구현하면 초기화, 조건비교, 증감식을 한 줄에 쓸 수 있고 가독성도 좋아집니다.
- for문은 배열과 함께 자주 사용합니다. 배열은 자료형이 순서대로 모여있는 구조인데, 배열 순서를 나타내느 색인은 항상 0부터 시작합니다. 따라서 배열의 전체 요소 개수가 n개일 때, 요소 위치는 n-1번째로 표현할 수 있습니다.
- 이러한 배열의 특성과 증감에 따른 반복을 표현하는 데 적합한 for문의 특성 때문에 for문과 배열을 함께 자주 사용하는 것입니다.
for문 요소 생략하기
초기화식 생략
int = 0;
for ( ; i < 5; i++) {
...
}
조건식 생략
for(i = 0; ; i++) {
sum += i;
if (sum > 200) break;
}
증감식 생략
for(i = 0; i < 5; ) {
...
i = (++i) % 10;
}
요소 모두 생략
모든 요소를 생략하고 무한 반복하는 경우에 사용합니다. for ( ; ; ) { ... }
중첩된 반복문
package selfstudy;
public class WhileEx4{
public static void main(String[] args) {
int i;
int j;
for (i = 2; i <= 9; i++) { // 2단부터 9단까지 반복하는 외부 반복문
for (j = 1; j <= 9; j++) { // 각 단에서 1~9를 곱하는 내부 반복문
System.out.println(i + "X" + j + " = " + i * j);
}
System.out.println();
}
}
}
continue문
- continue문은 반복문과 함께 쓰입니다. 반복문 안에서 continue문을 만나면 이후의 문장은 수행하지 않고 for문의 처음으로 돌아가 증감식을 수행합니다.
- 반복 건너뛰기
package selfstudy;
public class WhileEx5{
public static void main(String[] args) {
int total = 0;
int num;
for(num = 1; num <= 100; num++) {
if (num % 2 == 0) {
continue;
}
total += num;
}
System.out.println("1부터 100까지의 홀수의 합은: " + total + "입니다.");
}
}
수업결과
1부터 100까지의 홀수의 합은: 2500입니다.
break문
반복문에서 break문을 사용하면 그 지점에서 더 이상 수행문을 반복하지 않고 반복문을 빠져나옵니다.
package selfstudy;
public class WhileEx6{
public static void main(String[] args) {
int sum = 0;
int num = 0;
for (num = 0; ; num++) {
sum += num;
if (sum >= 100)
break;
}
System.out.println("num : " + num);
System.out.println("sum : " + sum);
sum = 0;
num = 0;
while(true) {
sum += num;
if (sum >= 100) {
break;
}
num++;
}
System.out.println("num : " + num);
System.out.println("sum : " + sum);
}
}
실행결과
num : 14
sum : 105
num : 14
sum : 105
'Java' 카테고리의 다른 글
Java 복습_09 (0) | 2022.07.06 |
---|---|
Java 복습_08 (0) | 2022.07.04 |
Java 복습_6 (0) | 2022.06.18 |
Java 복습_5 (0) | 2022.06.09 |
Java 복습_4 (0) | 2022.06.01 |
댓글