반복문
반복문은 코드를 반복적으로 실행하고자 할 때 사용한다. 반복문의 종류로는 for문과 while문, do-while문이 있다. for문과 while문은 서로 변환이 가능하기 때문에 반복문을 작성할 때 어느 쪽을 선택해도 좋다. 하지만, 반복 횟수를 알고 있을 때는 for문, 조건에 따라 반복할 때는 while문을 주로 사용한다.
for문
for문은 조건식이 참인 동안 주어진 횟수만큼 실행문을 반복적으로 수행한다.
다음은 1부터 10까지의 수를 반복하여 더하는 예제이다.
public class ForEx {
public static void main(String[] args) {
int result = 0;
// for (초기화; 조건식; 증감식) {}
for (int i = 1; i <= 10; num++) {
result += i;
}
// 1~10의 합인 55 출력
System.out.println(result);
}
}
주로 반복문을 초기화할 때, 반복 계수 i(iterator)를 사용한다.
for 문의 구조
for (초기화; 조건식; 증감식)으로 설정하여 중괄호 {} 안에 실행코드를 작성한다.
- 초기화 : for 문이 시작될 수를 정하는 것으로, 반복할 변수의 초깃값을 설정한다.
- 조건식 : 반복할지의 여부를 결정하는 곳이다. 조건식 안의 값이 true라면 실행문을, false라면 실행하지 않고 반복문을 벗어난다.
- 증감식 : 반복 횟수를 결정하는 곳이다. 변수에 값을 더하거나, 빼거나, 곱하는 등 수행 방식을 설정한다.
for문의 실행 과정
- int i 변수를 선언하여 초깃값 1로 초기화한다.
- 초깃값 1은 10보다 작거나 같으므로 실행 블록을 실행한다.
- result라는 변수에 i를 더하는 과정을 수행한다.
- 실행 블록을 빠져나와 i에 1을 더한다.
- i가 11이 될 때까지 2~4번 과정을 반복한다.
- i가 11이 되었을 때, 조건이 충족하지 않으므로 for문을 종료한다.
향상된 for문 (Enhanced for문)
자바 5.0 버전 이상부터는 향상된 for문을 제공한다. 향상된 for 문의 경우, 변수와 증감식을 사용하지 않는다. 배열 및 컬렉션 항목의 개수만큼 반복하고 for문을 빠져나간다.
public class EnhancedForEx {
public static void main(String[] args) {
String[] names = {"Kim", "Lee", "Park"};
for (String name : names) {
System.out.println("사용자 이름 : " + name);
}
}
}
Enhanced for문의 구조
for (저장할 변수 선언 : 사용할 배열) {}
- 저장할 변수 선언 : 가져올 배열의 값을 임시적으로 저장하는 공간이다.
- 사용할 배열 : 배열의 길이만큼 반복하여 해당 반복 횟수만큼 차례대로 값을 가져온다.
Enhanced for문의 실행 과정
- names 배열에서 가져올 첫 번째 값이 존재하는지 확인한다.
- 값이 존재하여 이를 저장할 name 변수에 “Lee”를 저장한다.
- 중괄호 {} 안의 실행문을 실행하여 “사용자 이름 : Lee”를 출력한다.
- names 배열에서 가져올 다음 값이 있는지 확인하여 2~3번 과정을 반복한다.
- 만약, 더 이상 가져올 값이 없을 시, for문을 종료한다.
while 문
for문은 반복할 횟수를 알고 있을 때 사용한다면, while문은 조건식이 true일 경우에 계속해서 반복한다.
다음은 1부터 10까지의 수를 반복하여 더하는 예제이다.
public class whileEx {
public static void main(String[] args) {
int i = 1;
int result = 0;
while (i <= 10) {
result += i;
i++;
}
System.out.println(result);
}
}
while문의 구조 및 실행 순서
while (조건식) {}
- 조건식의 결과가 true일 때 중괄호 {} 안의 실행문을 실행한다.
- 실행문이 끝나면, 다시 조건식을 통해 true 또는 false를 판단한다.
- true이면 실행문을 반복하여 실행하고, false이면 while문을 종료한다.
while 문의 조건식 안에는 boolean 타입도 사용이 가능하다. 만약, while문 안에 조건식에 true를 사용하면 무한 루프에 빠지게 된다. 따라서 실행문 안에 while문을 벗어나게 해주는 코드가 필요하다.
int num = 0;
// 무한 루프에 빠짐
while (true) {
System.out.println(num);
num += 1;
}
int num = 0;
boolean run = true;
// 실행문 안에서 while문 탈출
while (run) {
System.out.println(num);
num += 1;
// num이 100이 되면 while문 탈출
if (num == 100) {
run = false;
}
}
do-while문
do-while문은 조건식에 의해 반복 실행한다는 점에서 while문과 동일하다. 하지만 while문은 조건식을 검사하고 난 뒤에 실행문을 결정하는 반면에, do-while문은 우선 실행을 시키고 난 뒤, 조건식을 통해 계속 반복할지를 결정한다.
public class DoWhileEx {
public static void main(String[] args) {
int i = 1;
int result = 0;
do {
result += i;
i += 1;
} while (i <= 10);
System.out.println(result);
}
}
do-while문의 구조 및 실행 순서
do {} while (조건식);
- do의 중괄호 {} 안에 내용을 수행한 뒤, 조건식 안의 내용을 검사한다.
- 조건식 결과가 true이면, do의 중괄호 {} 안에 실행문을 반복하여 수행한다.
- 만약, 조건식 결과가 false이면 do-while문을 바로 종료시킨다.
'언어(Language) > Java' 카테고리의 다른 글
[Java] 자바 배열(Array) 개념 정리 및 사용법 (0) | 2022.09.13 |
---|---|
[Java] 자바 break문과 continue문의 개념 정리 및 사용법, 차이점 (0) | 2022.09.13 |
[Java] 자바 조건문 개념 정리 및 사용법 (if, else if, else, switch) (0) | 2022.09.12 |
[Java] 자바 입출력 개념 정리 및 사용법 (print, println, printf, Scanner) (0) | 2022.09.11 |
[Java] 자바 연산자(Operator) 종류 및 사용법 정리 (0) | 2022.09.10 |