반복문
자바는 3가지 종류의 반복문을 제공한다.
while, do-while,for
1. 반복문이 필요한 이유
먼저 1을 한번씩 더해서 총 3번더하는 코드를 만들어보자.
package loop;
public class While1_1 {
public static void main(String[] args) {
int count = 0;
count = count + 1;
System.out.println("현재 숫자는:" + count);
count = count + 1;
System.out.println("현재 숫자는:" + count);
count = count + 1;
System.out.println("현재 숫자는:" + count);
}
}
출력
현재 숫자는:1
현재 숫자는:2
현재 숫자는:3
현재 보면 똑같은 코드가 3번 반복되고 있다, 만약 1을 100번 더하는 코드를 만들려고 하면 같은 코드를100번 입력해야
된다. 이렇게 특정 코드를 반복해서 실행할대 사용하는것이 반복문이다.
2. while
while문 구조
while (조건식) {
// 코드
}
- 조건식을 확인한다. 참이면 코드 블럭을 실행하고, 거짓이면 while문을 벗어난다.
- 조건식이 참이면 코드 블럭을 실행한다. 이후에 코드 블럭이 끝나면 다시 조건식 검사로 돌아가서 조건식을 검사 한다.(무한 반복)
while문을 이용해서 1을 한번씩 더해서 총 3번 더하는 코드를 만들어보면
package loop;
public class While1_2 {
public static void main(String[] args) {
int count = 0;
while (count < 3) {
count++;
System.out.println("현재 숫자는:" + count);
}
}
}
while (count < 3) 에서 코드 블럭을 반복 실행한다. 여기서 count 의 값이 1 , 2 , 3 으로 점점 커지다가 결국 count < 3 이 거짓이 되면서 while 문을 빠져나간다.
3. do-while
do-while문은 while문과 비슷하지만, 조건에 상관없이 무조건 한 번은 코드를 실행한다.
do-while문 구조
do {
// 코드
} while (조건식);
package loop;
public class DoWhile2 {
public static void main(String[] args) {
int i = 10;
do {
System.out.println("현재 숫자는:" + i);
i++;
} while (i < 3);
}
}
출력 결과
현재 숫자는:10
4. break, continue
break -> 반복문을 즉시 종료하고 나간다.
while(조건식) {
코드1;
break;//즉시 while문 종료로 이동한다.
코드2;
}
//while문 종료
continue -> 반복문의 나머지 부분을 건너뛰고 다음 반복으로 진행하는데 사용
while(조건식) {
코드1;
continue;//즉시 조건식으로 이동한다.
코드2;
}
5. for문
for문 구조
for (1.초기식; 2.조건식; 4.증감식) {
// 3.코드
}
for문 진행순서
- 1. 초기식이 실행된다. 주로 반복 횟수와 관련된 변수를 선언하고 초기화 할 때 사용한다. 초기식은 딱 1번 사용된다.
- 2. 조건식을 검증한다. 참이면 코드를 실행하고, 거짓이면 for문을 빠져나간다.
- 3. 코드블록에 있는 코드를 실행한다.
- 4. 코드가 종료되면 증감식을 실행한다. 주로 초기식에 넣은 반복 횟수와 관련된 변수의 값을 증가할 때 사용한다.
- 5. 다시 2. 조건식 부터 시작한다. (무한 반복)
예시
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
- 1. 초기식이 실행된다. int i = 1
- 2. 조건식을 검증한다. i <= 10
- 3. 조건식이 참이면 코드를 실행한다. System.out.println(i);
- 4. 코드가 종료되면 증감식을 실행한다. i++
- 5. 다시 2. 조건식을 검증한다. (무한 반복) 이후 i <= 10 조건이 거짓이 되면 for문을 빠져나간다
for (;;) {
// 코드
}
해당 코드는 조건이 없기 때문에 무한 반복하는 코드가 된다. while(true){}와 같은 코드
for문은 while문에 비해 초기화,조건검사,반복후 작업 등이 규칙적으로 한 줄에 모두 들어 있어 코드를 이해하기 더 쉽다.
정리
for문 장점:
1. 초기화, 조건 체크, 반복 후의 작업을 한 줄에서 처리할 수 있어 편리하다.
2. 정해진 횟수만큼의 반복을 수행하는 경우에 사용하기 적합하다.
3. 루프 변수의 범위가 for 루프 블록에 제한되므로, 다른 곳에서 이 변수를 실수로 변경할 가능성이 적다.
단점:
1. 루프의 조건이 루프 내부에서 변경되는 경우, for 루프는 관리하기 어렵다.
2. 복잡한 조건을 가진 반복문을 작성하기에는 while문이 더 적합할 수 있다.
while문 장점:
1. 루프의 조건이 루프 내부에서 변경되는 경우, while 루프는 이를 관리하기 쉽다.
2. for 루프보다 더 복잡한 조건과 시나리오에 적합하다.
3. 조건이 충족되는 동안 계속해서 루프를 실행하며, 종료 시점을 명확하게 알 수 없는 경우에 유용하다.
단점:
1. 초기화, 조건 체크, 반복 후의 작업이 분산되어 있어 코드를 이해하거나 작성하기 어려울 수 있다.
2. 루프 변수가 while 블록 바깥에서도 접근 가능하므로, 이 변수를 실수로 변경하는 상황이 발생할 수 있다
'코딩' 카테고리의 다른 글
[ Java ] 자바-입문 7.Scanner (0) | 2024.02.06 |
---|---|
[ Java ] 자바-입문 6. 스코프,형변환 (0) | 2024.02.05 |
[ Java ] 자바-입문 4. 조건문 (1) | 2024.02.03 |
[ Java ] 자바-입문 3. 연산자 (0) | 2024.02.02 |
[ Java ] 자바-입문 (변수 선언, 초기화, 명명 규칙) (0) | 2024.02.01 |