Java

[Java]반복문(part.2- while문)

MoZZANG 2022. 2. 28. 21:00

※ 앞선 for문 포스팅과 이어집니다.

 

while문이란?

반복문 중 하나로 반복횟수를 모를 때 '주로' 사용하는 반복문으로 형식은 다음과 같다.

 

▲ 대괄호부분의 내용은 제외한 부분이 기본적은 문법 뼈대이다. 대괄호부분은 보다시피 for문을 while문으로 바꿀 때 해당 위치에 맞는 코드를 입력해주게 되는데, for문은 한 줄에 초기식,반복조건, 증감식을 입력하지만 while문은 그렇지 않기 때문이다.

 

반복조건의 값이 true이면 중괄호안의 명령문들을 실행하며 false일 경우 while문을 종료하고 빠져나가게 된다.

 

while문에서 초기식은 while안에서 선언할 수 없다.

 

 

 

▲ 초기식은 while문 밖에서 선언, 증감식은 while문 안에서 선언한다.

 

 

▼ 초기식은 while문 밖에서 선언하기 때문에 for문과 다르게 반복문이 종료된 후에도 변수를 사용할 수 있다.

 

 

 

 

while문의 무한루프도 for문과 동일한 구조이며 다음과 같다.

▲ 반복조건이 true일 경우 명령문을 실행하는데 조건값을 true로 고정해서 입력했기 때문에 false가 나와 반복이 멈출일이 없다. 때문에 무한대로 계속 실행되는 코드인 것이다.

 

무한대로 실행되는 while문을 제어하기 위해서는 for문과 마찬가지로 역시 break를 사용한다.

 

 

 

 

 

이제 몇 가지 예제들을 보면서 직접 사용해보자.

 

1) 누적합 구하기

 

 

2) 행렬구조를 while문으로

 

▲ for문 포스팅에서 했던 예제를 while문으로 위와 같이 바꿀 수 있다. 쉽게 말해서 for문을 해체(?)시키면 while문이 된다. 또한 위에서 보다시피 변수 j를 해당 while문 바로 위에 위치시키지 않고 맨 처음에 선언을 하고 진행하면 1행만 출력되게 될 것이다. k가 1일 때의 안쪽 while문이 끝나고 k가 2가 되어서 다시 안쪽 while문을 실행하려고하면 j가 1로 초기화 되지 못하기 때문에 j가 5로 시작해버리기 때문이다. 때문에 j<=4라는 조건값이 false가 되므로 안쪽 while문이 실행될 수 없어지게 되버린다.

 

 

3) 구구단을 while문으로

 

▲ for문 포스팅에서 했던 구구단만들기 예제를 wihile문으로 바꾼 것이다. for문을 while문의 형식에 맞게 해체하면 된다.