본문 바로가기

오늘은 자바 반복문 그중에서 while문에 대해서

같이 알아보겠습니다.

 

while문을 사용하는 가장 기본적인 방법은

while("조건") {

실행문

}

으로 사용자가 설정한 조건이 일치하지 않을 때까지

설정한 실행문을 반복합니다.

간단하게 말하면 조건이 "거짓"이 되는 순간

해당 while문을 탈출하게 됩니다.

 

소스 코드를 통해서 바로 알아보겠습니다.

 

package whileEx;
/*
 * while("조건") {
 * 	  실행문
 * }
 * 
 * while문은 조건이 거짓이 되는 순간 문장전체를 벗어난다.
 * 거짓이 될때까지 계속해서 반복 수행
 */
public class whileEx {
	public static void main(String[] args) {
		
		int i = 10;
		
		System.out.println("카운트다운을 시작합니다.");
		
		while(i > 0) {
			System.out.println(i);
			i--;
		}
		System.out.println("카운트 종료!");
	}
}

 

위의 소스 코드를 실행하면!?

 

 

이렇게 콘솔 창에 값이 나오게 되는데

초기값으로 선언한 i = 10입니다.

여기서 while(i > 0)라는 조건을 설정하고

추가적으로 i--;을 설정했습니다.

그러면 i는 10부터 시작해서 1이 될 때까지

해당 반복문을 실행하면 i가 0이 되는 순간에

while문을 탈출하게 되는 의미입니다.

 

자 여기까지는 기본적으로 while문을

어떻게 사용하는지에 대해서 알아보았고,

약간의 응용을 해보겠습니다.

 

<숫자 맞추기 게임>

1. 범위는 1부터 100까지

2. 정답보다 입력한 숫자가 낮을 시에는 "up"

3. 정답보다 입력한 숫자가 높을 시에는 "down"

4.  정답을 맞히게 되면 게임 종료

 

위와 같은 조건을 통해서 while문을

사용해서 소스 코드를 작성한다면?

 

package whileEx;

import java.util.Random;
import java.util.Scanner;

public class whileEx2 {
	public static void main(String[] args) {
		
		boolean flag = true;
		int count = 0; // 시도횟수
		
		int randomNumber = (int)(Math.random() * 100 + 1);	//랜덤 숫자값 받아옴
		
		while(flag) {
			
			System.out.print("숫자를 입력하세요 : ");
			Scanner scan = new Scanner(System.in);
			int myNumber = scan.nextInt();	//내가 입력한 값
			
			count++;
			
			if(myNumber > randomNumber) {
				System.out.println("Down");
			} else if(myNumber < randomNumber) {
				System.out.println("Up");
			} else {
				flag = false;
			}
		}
		System.out.println("축하합니다. 시도횟수는 : " + count);
	}
}

 

저 같은 경우에는

변수로 boolean flag를 선언해서

while문에서 조건을 만족하면 해당 조건을

탈출할 수 있게, 미리 설정했습니다.

그리고 내가 몇 번을 시도했는지 알기 위해서

int count를 선언하고 시도할 때마다 count의 값을

하나씩 증가했습니다.

 

while문 내부를 보시면 내가 입력한 숫자가

랜덤 숫자와 일치할 시에는 flag가 false로 바뀌게

되면서 while으로 들어가지 못하고

밖으로 탈출하게 됩니다.

그렇게 되면 게임 종료와 동시에

내가 시도한 횟수를 보여줍니다.

 

이런 식으로 앞에서 배웠던 if문을 응용해서

숫자 맞추기를 만들어보았습니다.

물론 이게 완벽한 정답은 아닙니다.

같은 문제라도 어떻게 바라보느냐에 따라서

소스 코드는 무수히 변화합니다.

 

여기까지 while문에 대해서

알아보았습니다.

감사합니다.

93 DL

Develop Life