1. for문
(1) 특징
: () 안의 반복을 지정하는 부분이 있고, 초기식·조건식·증감식으로 이루어져있으며 각각 세미콜론(;)으로 구분된다.
① 초기식: 반복문이 시작될 때 초기에 단 한 번만 실행되는 구문
반복문이 사용할 변수를 선언하고 초기화한다.
- ex) int i = 0;
② 조건식: 반복문이 실행될 조건을 작성하는 구문
보통 초기식에서 만든 변수를 가지고 조건식을 작성한다.
- 조건식이 true일 경우, 반복문을 실행한다.
- 조건식이 false일 경우, 반복문을 빠져 나간다.
- ex) i < 0;
③ 증감식: 반복문을 제어하는 변수값을 증감시키는 구문
조건식과 마찬가지로 초기식에서 만든 변수를 가지고 증감식을 작성한다.
이때, 대개 증감 연산자가 사용된다.
- ex) i++, --i
(2) 실행 순서
: 초기식(처음에 한 번만 실행) → 조건식(검사)(→ true일 경우 {} 안에 있는 코드를 실행) → 증감식
→ 조건식(검사)(→ true일 경우 {} 안에 있는 코드를 실행) → 증감식
→ 조건식(검사)(→ true일 경우 {} 안에 있는 코드를 실행) → 증감식
→ 계속 반복
→ 조건식(검사) → false일 경우 코드를 실행하지 않고 반복물을 빠져 나감
- 조건식을 검사했을 때 true여야만 반복문이 실행된다.
(3) 변수
① for문 안에서 선언한 변수(초기식에서 선언한 변수): for문 안에서만 유효하고 밖에서 사용할 수 없다.
② for문 밖에서 선언한 변수: for문 안에서 활용할 수 있다.
(4) 표현법
for(초기식; 조건식; 증감식) {
실행할 문장;
}
(5) 예시
//1씩 증가하며 Hello 7번 반복하기
for(int i = 0; i < 7; i++) {
System.out.println("Hello");
}
▼실행결과
Hello Hello Hello Hello Hello Hello Hello |
//위의 코드에서 i가 몇 번 수행됐는지 알아보기
for(int i = 0; i < 7; i++) {
System.out.println("Hello" + i); //문자열 뒤에 +i 붙이면 횟수 알 수 있음
}
▼실행결과
Hello0 Hello1 Hello2 Hello3 Hello4 Hello5 Hello6 |
숫자 셀 때에는 0부터 센다. 그래서 위의 실행결과에서 0, 1, 2, 3, 4, 5, 6으로 총 7번 출력되었다.
//i가 2씩 증가하도록 만들기
for(int i = 0; i < 10; i += 2) {
System.out.println(i);
}
▼실행결과
0 2 4 6 8 |
//for문에서 초기식, 조건식, 증감식이 없어도 문법적 오류가 아님
//없으면 무한 반복으로 출력됨
for(;;) {
System.out.println("abc");
}
▼실행결과
abc abc abc abc abc abc . . . |
2. while문
(1) 특징
① 소괄호 () 안에 조건이 참(true)일 경우 해당 구문을 반복적으로 실행한다.
② 조건식에 true를 넣고 실행시키면 무한 반복이 된다.
③ 횟수가 정해지지 않은 조건일 때 주로 사용
(for문은 횟수가 정해져 있는 조건일 때 주로 사용)
④ while문을 만날 때에 조건식을 검사할 시, 값이 true이면 실행, false이면 반복문을 빠져 나간다.
(2) 표현법
초기식 //초기식은 필수가 아니다.
while(조건식) {
반복 실행할 코드
증감식; //초기식과 같이 필수적인 것은 아니다.
}
(3) 예시
public void basic() {
int i = 1; //초기식
while(i < 4) {
System.out.println(i);
i++; //증감식
}
}
▼실행결과
1 2 3 |
변수 i는 1로 선언되었다.
조건문(i < 4)은 변수 i가 4보다 작을 때까지 반복하는 것이다. (이는 변수 i가 4가 되어 조건식으로 돌아오면 조건식의 값은 false이므로 반복문을 빠져나가는 것으로 보면 된다.)
증감식은 1씩 증가하는 후위연산이므로 일단 1이 먼저 출력된다.
그리고 변수 i는 1이 증가되어 2가 된 상태로 조건문으로 돌아간다. 그 다음 2가 출력되고 1이 증가되어 3이 된 상태로 또다시 조건문으로 돌아가서 3이 출력된 후 1이 증가되어 4가 된다.
이때, 변수 i는 4가 되어 'i < 4'라는 조건식에 부합하지 않으므로 반복문을 빠져나간다.