반복문 (looping statements)
※ loop : 고리, 순환, 고리 모양을 만들다
- 똑같은 명령을 일정 횟수만큼 반복하여 수행하도록 제어하는 명령문입니다.
- 자바에서 사용하는 대표적인 반복문은 4가지가 있습니다.
- while문, do/while문, for문, enhanced for문
▶ while문
※ while : ~하는 동안
- while문 : 특정 조건을 만족할 때까지 계속해서 주어진 명령문을 반복 실행합니다.
- 자바에서 while문의 문법 구조입니다. ▼
while (조건식) {
조건식의 결과가 참(true)일 때 반복적으로 실행하고자 하는 명령문;
}
- while문의 실행 순서
while문 조건식 확인 -> 참 ->주어진 명령문 실행 -> while문 조건식 확인
-> 조건이 거짓이 될 때 까지 반복
- while문을 사용할 때 조건을 잘못 설정하면 무한루프(infinite loop)에 빠지게 됩니다.
무한루프에 빠지면 프로그램은 영원히 종료되지 않기 때문에 조심해야 합니다.
- while문의 예시
public class Control {
public static void main(String[] args) {
int i = 0;
while(i < 5) {
System.out.println("while문 " + i + "번째 실행 중");
i++; // 없으면 무한루프에 빠진다
}
System.out.println("while문 " + i + "번째 실행 종료");
}
}
---------------------------------------------------------------------
출력 결과
while문 0번째 실행 중
while문 1번째 실행 중
while문 2번째 실행 중
while문 3번째 실행 중
while문 4번째 실행 중
while문 5번째 실행 종료
- i++의 조건이 없을 경우 i는 0이기 때문에 while의 조건이 참이 되기 때문에 무한루프에
빠질 수 있습니다.
※ while문에서 실행될 명령문이 한 줄 뿐이라면 중괄호{}를 생락할 수 있습니다.
▶ do/while문
- do/while문 : 특정 조건과 상관 없이 명령을 무조건 한번은 실행해 준 후에 조건을 검사합니다.
- 자바에서 do/while문의 문법 구조입니다. ▼
do {
조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;
} while (조건식);
- do/while문의 실행 순서
do에 기록된 명령문 실행 -> while의 조건식 확인 -> 참 -> do에 있는 명령문 실행
-> while의 조건식이 거짓이 될 때까지 반복
- do/while문을 사용할 때 조건을 잘못 설정하면 무한루프(infinite loop)에 빠지게 됩니다.
무한루프에 빠지면 프로그램은 영원히 종료되지 않기 때문에 조심해야 합니다.
- do/while문의 예시
public class Control {
public static void main(String[] args) {
int i = 1;
int j = 1;
while(i < 1) {
System.out.println("while문 i=" + i + " 실행 중");
i++; //없으면 무한루프
}
System.out.println("while문 i=" + i + " 실행 종료");
do {
System.out.println("do/while문 j=" + j + " 실행 중");
j++; //없으면 무한루프
} while(j < 1);
System.out.println("do/while문 j=" + j + " 실행 종료");
}
}
---------------------------------------------------------------------
출력 결과
while문 i=1 실행 종료
do/while문 j=1 실행 중
do/while문 j=2 실행 종료
- while문의 경우 조건식이 거짓이기 때문에 바로 종료가 되지만
do/while문의 경우에는 명령문이 실행된 후에 조건식에 대입을 하기 때문에
명령문이 한번은 실행이 되는 모습을 볼 수 있습니다.
※ while문에서 실행될 명령문이 한 줄 뿐이라면 중괄호{}를 생락할 수 있습니다.
▶ for문
- for문 : 초기식, 조건식, 증감식을 모두 포함하고 있는 반복문입니다.
while문에 비해 간결하기도 하며, 시작과 끝이 정해져있어서 무한루프에 빠질 확률이 매우 낮습니다.
- for문의 문법 구조입니다. ▼
for (초기식; 조건식; 증감식) {
조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;
}
- for문의 실행 순서
초기식(시작 시점) 설정 -> 조건식 확인 -> 참 -> 명령문 실행
-> 초기식의 값 증감 -> 조건식 확인 -> 거짓 -> for문 종료
- 초기식, 조건식, 증감식은 C언어, JAVA, Python마다 형식이 다르다.
< JAVA 형식 >
초기식 : int i = 0
조건식 : i < 5
증감식 : i++
- for문의 예시
for (i = 0; i < 5; i++) {
System.out.println((i) + "번째 for문")
}
System.out.println(i + "번째 for문 종료");
---------------------------------------------------------------------
출력 결과
0번째 for문
1번째 for문
2번째 for문
3번째 for문
4번째 for문
5번째 for문 종료
- 구구단과 같은 경우 for문을 사용하면 좀 더 쉽게 구현할 수 있다.
▶ enhanced for문
- enhanced for문 : JDK 1.5부터 추가된 for문으로 컬렉션, 배열에서 사용할 수 있습니다.
배열이나 컬렉션에 있는 모든 요소를 하나씩 꺼내서 사용해야할 경우 사용하면 됩니다.
(자바스크립트의 for each와 비슷한 유형)
- enhanced for문의 문법 구조입니다. ▼
for (타입 변수이름 : 배열이나컬렉션이름) {
배열의 길이만큼 반복적으로 실행하고자 하는 명령문;
}
- enhanced for문의 실행 순서
배열이나 컬렉션의 요소를 하나씩 왼쪽 변수에 담음 -> 명령문 실행
-> 배열이나 컬렉션의 길이 만큼 반복
- 배열이나 컬렉션의 요소를 사용하기 위해 따로 length를 구해야 하는 번거로움이 사라진다.
단! 요소의 값을 변경하는 작업에는 적절하지 않습니다.
왼쪽 변수이름에 값을 넣을 때 이는 원본의 복사본이기 때문에 아무리 계산을 해도 원본에 영향을 주지 못하기 때문입니다.
- enhanced for문의 예시
int[] arr = new int[]{1, 2, 3, 4, 5};
for (int e : arr) {
System.out.print(e + " / ");
}
---------------------------------------------------------------------
출력 결과
1 / 2 / 3 / 4 / 5 /
반복문은 자주 사용하기 때문에 알아두면 매우 편리할 것이다.
암기는 하지 않더라도 for문, while문, enhanced for문 이라는게 있다는 정도는 기억해두자.
나머지 사용법은 구글에게 물어보면서 하면 된다.
출처 : http://tcpschool.com/java/java_control_loop
'Programing > JAVA' 카테고리의 다른 글
Java Control (분기문) (0) | 2022.12.20 |
---|---|
JAVA 제어문 (0) | 2022.12.09 |
자바 - 기본 함수 (0) | 2022.12.06 |
데이터 출력 변환 (null -> 0 / 0 -> null) (0) | 2022.11.30 |
Java Control (조건문) (0) | 2021.07.19 |