저번 포스팅에선 제어문 중 조건문에 대해서 알아보았는데, 이번에는 반복문에 대해 작성하려 한다.
반복문
반복문은 특정한 코드나 행위를 반복해야 할 때 사용하는 문장이다.
▪ 조건에 의한 반복문 : while문, do~while문
▪ 횟수에 의한 반복문 : for문
01 while문
▪ 조건에 의한 반복문으로 조건이 참일 동안 문장이 반복되어 실행된다.
▪ while문을 한번이라도 수행하기 위해서는 초기 조건식의 결과가 무조건 true여야한다.
※ while문의 기본 형태
while(조건식){
조건식이 참일동안 반복할 문장
}
예를들어, "식당의 음식 재고가 0이되면 영업이 종료된다"를 while문으로 만들어 본다면 아래와같이 쓸 수 있다 :)
int foodnum = 10;
while(foodnum > 0) {
System.out.println("음식이 팔렸습니다");
foodnum--;
System.out.println("남은 음식 재고 : " + foodnum);
if(foodnum == 0) {
System.out.println("음식재고가 0이되어 영업을 종료합니다.");
}
}
결과
음식이 팔렸습니다
남은 음식 재고 : 9
음식이 팔렸습니다
남은 음식 재고 : 8
음식이 팔렸습니다
남은 음식 재고 : 7
음식이 팔렸습니다
남은 음식 재고 : 6
음식이 팔렸습니다
남은 음식 재고 : 5
음식이 팔렸습니다
남은 음식 재고 : 4
음식이 팔렸습니다
남은 음식 재고 : 3
음식이 팔렸습니다
남은 음식 재고 : 2
음식이 팔렸습니다
남은 음식 재고 : 1
음식이 팔렸습니다
남은 음식 재고 : 0
음식재고가 0이되어 영업을 종료합니다.
02 do ~ while문
▪ 조건에 의한 반복문이다.
▪ while문과 달리 초기값이 무엇이든 상관없이, do문을 실행하고 while로가 조건식 검사를 하기 때문에
무조건 한번은 실행한다.
※ do~while문의 기본 형태
do{
조건식이 참일동안 반복할 문장
}
while(조건식);
위의 while문 예시의 식당을 do~while문으로 변경하였다.
이때, 음식의 재고가 0이기 때문에 while문이라면 실행이 되지 않았을텐데 do~while문은 실행이 되는것을 볼 수 있다.
int foodnum = 0;
do{
if(foodnum>0) {
System.out.println("음식이 팔렸습니다");
foodnum--;
System.out.println("남은 음식 재고 : " + foodnum);
}
else if(foodnum == 0) {
System.out.println("음식재고가 0이되어 영업을 종료합니다.");
}
}while(foodnum > 0);
결과
음식재고가 0이되어 영업을 종료합니다.
03 무한 반복
무한 반복에 대해서 알아보자. 무한반복은 말 그대로 무한히 반복한다는 의미이다.
※ 무한반복의 기본 형태
while(true){
무한 반복할 문장
}
while문의 조건문이 True이므로 항상 참이 된다. 따라서 while문 안에 있는 문장들은 무한하게 수행될 것이다.
무한반복에 갇히지 않기 위해서는 특정한 조건일 때 break를 통한 탈출구 하나 이상을 만들어 주어야한다.
※ 무한반복 예시
lic static void main(String[] args) {
int water = 1;
int cup = 0;
while(true) {
cup += water;
System.out.printf("컵에 물을 담자! 현재 물양 : %dL\n",cup);
if(cup == 10) {
System.out.println("그만! 컵이 넘치겠어 (;′⌒`)");
break;
}
}
결과
컵에 물을 담자! 현재 물양 : 1L
컵에 물을 담자! 현재 물양 : 2L
컵에 물을 담자! 현재 물양 : 3L
컵에 물을 담자! 현재 물양 : 4L
컵에 물을 담자! 현재 물양 : 5L
컵에 물을 담자! 현재 물양 : 6L
컵에 물을 담자! 현재 물양 : 7L
컵에 물을 담자! 현재 물양 : 8L
컵에 물을 담자! 현재 물양 : 9L
컵에 물을 담자! 현재 물양 : 10L
그만! 컵이 넘치겠어 (;′⌒`)
탈출구를 만들지 않는다면, 컵에 물을 계속해서 담았겠지만 break로 탈출구를 만들어 무한반복에 갇히지않는다.
04 for문
▪ 횟수에 의한 반복문이다.
▪ 반복 횟수가 특정된 경우에 사용한다.
▪ for 문은 while 문과는 달리 자체적으로 초기식, 표현식, 증감식을 모두 포함하고 있는 반복문이다.
따라서 while 문보다는 좀 더 간결하게 반복문을 표현할 수 있다.
※ for문의 기본 형태
for(초기식;조건식;증감식){
반복할 문장
}
초기식에서는 새로운 변수를 하나 선언한다.(내부에서 그 변수를 이용해 for문 안쪽에서 변하는 값으로 나타낼 수 있다.)
★ for문은 예시로 살펴보거나, 문제를 많이 풀어보는것이 좋다
※ for문 예시
for (int i = 0; i < 10; i++) {
// i가 10 미만인 동안 i 증감
System.out.println(i);
}
결과
0
1
2
3
4
5
6
7
8
9
마지막으로 한번더 while문 / do ~ while문 / for문의 차이를 살펴 보자
while문 | do~while문 | for문 | |
특징 | ▪ 조건이 참인 동안 반복 ▪ 조건이 맞지 않으면 수행 되지 않음 |
▪ 조건이 참인 동안 반복 ▪ 수행 후 조건문 체크를 하기 때문에 무조건 한번은 실행 |
▪ 횟수에 의해 반복 ▪ 반복 횟수가 특정된 경우 사용한다. ▪ 초기식, 표현식, 증감식을 모두 포함하고 있다 |
'프로그래밍 > JAVA' 카테고리의 다른 글
11 1차원 배열 (0) | 2021.04.01 |
---|---|
10 For문을 사용한 문제 풀이 (0) | 2021.03.30 |
08 제어문_조건문(if문,switch문 / 기타,누적,증감 연산자) (0) | 2021.03.25 |
07 연산자 (0) | 2021.03.24 |
댓글