이전 걸음에서 조건문에 대해서 배웠습니다. 하지만 조건문은 조건과 상황에 맞는 것을 실행을 해주는 것은 좋지만 한번만 실행되고 끝나서 이 조건문만 가지고는 프로그램이라고 할 수 없겠죠? 그럼 여러 반복을 통해 원하는 동작을 하려면 어떻게 하면 될까요? 당연히 프로그램에 정말로 필요하다고 저 또한 생각을 하는 부분입니다.
원하는 횟수 만큼 반복을 해야 사용자에게 필요한 프로그램이라고 할 수 있습니다. 한번만 동작을 한다면 사람이 그 일은 더 잘 할 수 있습니다. 그렇기 때문에 똑같은 동작을 원하는 횟수 만큼 동작을 해야 합니다.
위의 내용을 반복문이라고 합니다. 이 글에서 반복문 중에 하나를 배우고 사용을 하는 방법 그리고 주의 사항을 배우겠습니다.
반복문에 첫 번째 알아볼 명령문은 while문입니다. 이 while문에는 형태가 2개가 있습니다. 그냥 while문이 있고 do-while문이 있습니다.
조건문이랑 다르게 조건이 맞으면 실행하는 것은 같지만 그게 계속 반복이 되는 것입니다. 즉, 조건이 참이면 계속 반복을 한다고 생각을 하면 됩니다.
이 글을 끝까지 보신다면 while문과 do-while문에 대해 이해하고 사용을 하는 방법과 주의를 할 점을 배울 수 있습니다.
while문
while문은 조건이 참이라면 계속 반복이 되고 조건이 거짓이 되면 탈출을 하게 됩니다. 형태가 여러 가지이지는 않습니다.
while(조건){
명령문
}
위와 같이 사용을 합니다.
※반복 횟수는 조건이 정하게 됩니다.
public static void main(String[] args) {
// TODO Auto-generated method stub
int hap = 0; // 정수 변수 hap을 선언하고 0을 대입
int count = 1; // 정수 변수 count를 선언하고 1을 대입
while(count
do-while문
do-while문은 do에 명령문을 넣고 while문에 조건을 넣는 형식으로 구문을 만듭니다.
do{
명령문
}while(조건);
당연한 이야기지만 조건이 참이어야 반복 거짓이면 탈출은 while문가 똑같습니다.
public static void main(String[] args) {
// TODO Auto-generated method stub
int hap = 0; // 정수 변수 hap을 선언하고 0을 대입
int count = 1; // 정수 변수 count를 선언하고 1을 대입
do{
hap = hap + count; // hap과 count를 더해서 hap에 대입
count = count + 1; // count의 값과 1을 더해서 count에 대입
}while(count
반복문 동작 정리
Hap과 Count가 더해져서 그 다음 Hap이 됩니다. 이렇게 계속 진행이 되고 count는 계속 1씩 증가가 됩니다. count가 1~10까지 동작을 하고 11이 될 때 탈출을 하게 됩니다. 그렇게 합쳐진 값은 Hap에 들어 있습니다.
위의 동작 원리 같이 정리를 하면서 반복문을 사용 하면 공부에 도움이 됩니다.
while문과 do-while문의 차이점
while과 do-while문의 차이가 없으면 이렇게 둘로 나누어져 나오지 않았겠죠?
while과 do-while문의 차이점
whlie문은 조건을 확인하고 실행을 하지만 do-while문은 실행을 하고 조건을 확인합니다. 그렇기 때문에 첫 진입시 조건이 거짓이면 while문은 실행을 하지 않습니다. 하지만 do-while문은 한번은 실행이 됩니다.
문법 형태가 다릅니다. 일반적 제어문은 ()소괄호 뒤에 {로 시작을 하지만 유일하게 do-while문만 while(조건);이런 형태를 가집니다.
위와 같이 중요한 차이가 있습니다. 일반적으로는 while문으로 사용을 하는 것을 추천합니다. do-while문 같은 경우 한번은 무조건 실행 하기 때문에 논리적 생각을 힘들게 할 수 있기 때문입니다.
public static void main(String[] args) {
// TODO Auto-generated method stub
boolean check = false; // boolean 자료형 변수 check 선언 후 false 대입
while(check) { // check가 참이면 반복
System.out.println("while 출력되라~"); // 출력
}
do {
System.out.println("do while 출력되라~");// 출력
}while(check); // check가 참이면 반복
}