문법(Statements) - 반복문
반복문은 조건이 충족되는 동안 동일한 작업을 수행할 때 사용한다.
반복문은 조건을 잘 사용하여 반복횟수를 잘 제어해야 한다.
while 문
while( 조건 ) {
//조건이 참인 동안 반복 실행될 영역
}
"열 번 찍어 안 넘어 가는 나무 없다" 라는 속담을 while
문을 이용하여 적용해보면 다음과 같다.
int hitTreeCount = 0;
while (hitTreeCount < 10) {
hitTreeCount++;
System.out.println("나무를 " + hitTreeCount + "번 찍었습니다.");
if (hitTreeCount == 10) {
System.out.println("나무가 넘어간다");
}
}
반복횟수의 제한이 없는 경우 while
문을 이용하여 무한루프 를 만들 수 있다.
while(true) {
System.out.println("프로그램을 종료해야 while문을 빠져나갈 수 있습니다.");
}
특정 조건에서 while
문을 빠져나가고 싶은 경우 break
를 이용할 수 있다.
특정 조건에서 조건문의 처음으로 돌아가고 싶다면 continue
를 사용한다.
300원짜리 한 음료를 재고가 떨어질때 까지 판매하는 자판기 를 프로그램으로 표현해면 다음과 같다.
Scanner scan = new Scanner(System.in); //키보드 입력을 받기 위한 객체 생성
//프로그램에 필요한 변수 선언
int storedDrink = 20;
long drinkPrice = 300;
long coin = 0;
long insertCoin = 0;
//break 문을 만날때까지 동작하는 무한루프 프로그램
while(true) {
//재고가 부족할 경우 프로그램을 종료한다
if (storedDrink == 0) {
System.out.println("재고가 부족해 음료를 팔 수가 없습니다. 판매를 중지합니다.");
break;
}
//음료의 금액을 받는다
if(coin < drinkPrice) {
System.out.print("동전을 숫자로 입력해주세요. (현재금액 " + coin + "원) : ");
insertCoin = scan.nextLong();
coin = coin + insertCoin; // coin += insertCoin 과 동일
insertCoin = 0;
continue;
}
storedDrink--;
System.out.println("************************************************");
System.out.println("음료를 판매하였습니다.(남은 수량" + storedDrink + ")");
System.out.println("거스름돈은 " + (coin - drinkPrice) + "원 입니다");
System.out.println("************************************************");
coin = 0;
}
do while 문
do while
문도 while
문과 같게 조건이 참인동안 실행되지만, 무조건 한번은 실행된다.
do {
//조건이 참인 동안 반복 실행될 영역
} while( 조건 )
for 문
for
문은 반복문 중에서 반복 횟수를 제어하기 쉬어 가장 흔히 쓰이는 형태이다.for (초기값; 조건; 증가치)
와 같이 사용할 수 있다.
for(int i=0 ; i < 10 ; i++) {
//조건이 참인 동안 반복 실행될 영역(총 10번 실행)
}
※ 반복문을 중첩하여 사용해 구구단을 출력해보자.