제어문 - 반복문
반복문
- 조건을 설정하고, 조건이 true일 때까지 실행 블록을 반복 수행
for문
기본 문법
for( 초기식 ; 조건식 ; 증감식 ) {
// 조건식이 true일 때까지 반복 실행할 코드 영역
}
for(int i = 0 ; i <= 10 ; i++) {
// 초기식 ; 조건식 ; 증감식
System.out.print( i + " " );
// 조건식이 true일 때까지 실행할 코드
}
// 출력 결과 : 0 1 2 3 4 5 6 7 8 9 10
- 초기식 : 변수 i 선언 동시에 초기화
- 조건식 : 변수 i가 10보다 작거나 같을 때까지
- 증감식 : i를 1씩 증가
초기식 처럼 i는 0이기 때문에 조건식이 true이다.
true기 때문에 실행 블록 코드를 실행시킨다.
실행 한 후, 증감식으로 이동해 i를 1증가 시킨다.
i가 10보다 작거나 같아질 때까지 반복 !
중첩 for문
for ( 초기식; 조건식 1; 증감식 ) {
조건식1이 true일 때까지 실행할 코드
for ( 초기식; 조건식 2; 증감식 ) {
조건식2가 true일 때까지 실행할 코드
}
실행 블록 3
}
for (int i = 1; i <= 3; i++) {
System.out.println(" ");
for (int j = 1; j <= 3 ; j++ ) {
System.out.printf("%d * %d = %d\n", i, j, i * j);
}
System.out.println("끝");
}
오늘 실습은 중첩 반복문을 통해 구구단을 출력하는 거였는데,
코드가 너무 길어서 여기까지만.
while문
- 기능은 for문이랑 같지만 문법만 조금 다르다.
// 초기식 (생략 가능)
while( 조건식 ) {
// 조건식이 true일 때까지 실행할 코드
// 증감식 (생략 가능)
}
for문에서는 초기식, 조건식, 증감식을 한 줄로 나열해서 썼을 뿐, while문이랑 똑같다.
헷갈릴 때는 주석을 다 달아놓고 시작하면 편하다.
마찬가지로 조건식이 true일 때까지 반복 실행한다.
int i = 0; // 초기식 (생략 가능)
while( i <= 10 ) { // 조건식
// 조건식이 true일 때까지 실행할 코드
System.out.print( i + " ");
// 증감식
i++;
}
// 출력 결과 : 0 1 2 3 4 5 6 7 8 9 10
위 for문이랑 같은결과값을 출력한다.
초기식, 조건식, 증감식의 위치만 다를 뿐 다른 건 다 똑같다.
이것만 기억해도 덜 헷갈릴듯 하다 !!
do ~ while문
- 무조건 코드 블록 실행 후 조건식 확인
- 조건식이 true일 경우 다시 코드 블록으로 올라와서 실행 반복
- while 뒤에 ; 필수
do {
// 무조건 실행되는 코드
} while( 조건식 ); // 조건식이 true이면 다시 do 코드 블록 실행
앞서 배웠던 반복문과는 다른 실행 순서를 갖는다.
조건식에 관계없이 무조건 실행해야하는 코드가 있을 때 사용하면 된다.
int i = 1;
do {
System.out.println("hello");
} while( i == 10 ); // 조건식
// 출력 결과 : hello
조건식이 false임에도 do 코드 블록이 무조건 실행된다.
실행 후 조건식으로 이동하는데, 이때는 true / false를 판별한다.
false기 때문에 다시 돌아가지 않는다.