본문 바로가기
BackEnd/Java

[Java] 무한 반복문 While, Do While

by summer_light 2021. 7. 1.

무한 반복문(While)

while은 보통 무한 반복을 실행하다가 특정 조건이 되면 탈출하도록 한다.

채팅이나 게임 등 무한 반복 로직에서 활용한다.

while(조건식) {
	조건식이 참이면 계속 실행하는 부분
}

 


 

예제 01. 반복문

package may24;

import java.io.IOException;

public class While01 {	
	public static void main(String[] args) throws IOException {
		
		boolean exit = true;
		
		while ( exit ) {
			System.out.println("조건식이 참이면 돕니다.");
			System.out.println("멈출까요?(Y/N)");
			char input = (char) System.in.read();
			System.in.read(); // 엔터도 == \n \r
			System.in.read(); // 이 문장은 엔터키 처리입니다.
			
			if(input == 'Y' || input == 'y') {
				exit = !exit; // 참<->거짓 으로 바뀌는 것은 이렇게 표현
				System.out.println("종료합니다.");
			}
		}
		
		System.out.println("While문 아래 출력문 입니다.");
	}

}

 

  • 이렇게 참/거짓과 같이 반대 속성으로 바뀌는 경우 exit = !exit; 와 같이 표현하는 것이 효율적인 듯 하다. 

 

출력결과:

조건식이 참이면 돕니다.

멈출까요?(Y/N)

n

조건식이 참이면 돕니다.

멈출까요?(Y/N)

y

종료합니다.

While문 아래 출력문 입니다.

 

예제 02. 반복문

package may24;

public class While02 {

	public static void main(String[] args) {
		// 3번만 출력하게 해주세요.
		
		int count = 0;
		while (count < 3) {
			System.out.println("While문 실행중입니다.");
			count++;
		}

	}

}

출력결과:

While문 실행중입니다.

While문 실행중입니다.

While문 실행중입니다.

 

예제03. 숫자 맞추기 게임

package may24;

import java.util.Scanner;

//while을 사용한 숫자게임
public class While03 {

	public static void main(String[] args) {
		// 사용자 입력
		Scanner sc = new Scanner(System.in);
		System.out.println("숫자게임");
		
		//컴 두자리 숫자 뽑기
		int com = (int) (Math.random()*99+1);
		System.out.println(com);
	
		//while로 비교
		int input=0;
		int count=0;
		while(input != com) {
			System.out.print("숫자 입력: ");
			input = sc.nextInt();
			if(input < com) {
				System.out.println("up");
			} 
			if(input > com) {
				System.out.println("down");
			}
			count++;
		}
		
		System.out.println("축하합니다. " + count + "번 만에 맞추셨습니다.");
		
		
		//up/down, 일치하면 "축하합니다" 프로그램 종료
		
		//몇 번 시도 했는지 프로그램 종료 후 출력

	}
}

 

실행결과:

숫자게임

정답: 15

숫자 입력: 10

up

숫자 입력: 20

down

숫자 입력: 14

up

숫자 입력: 15

축하합니다. 4번 만에 맞추셨습니다.

 


do~while 문

기본 while문과 다르게 무조건 한 번 실행하고 다음에 조건문에 따라서 반복하게끔 하는 반복문이다.

while문은 조건식이 거짓이면 한 번도 안 돌지만 do~while문은 무조건 한 번은 도는 형태를 가지고 있다.

 

public static void main(String[] args) {
	do {
		//조건식이 참일 때 실행할 문장;
		System.out.println("조건식이 거짓이라도 무조건 한 번은 실행");
	} while (!true); 
}

 

▲ do while 문의 기본 형태

 

예제 01. 정해진 구간 내의 숫자 계속 입력받기

          do {
              System.out.println("자바 점수를 입력하세요.");
              java = sc.nextInt();
          } while (java < 0 || java > 100); //0~100

          do {
              System.out.println("jsp 점수를 입력하세요.");
              jsp = sc.nextInt();
          } while (jsp < 0 || jsp > 100); //0~100

 

 

 

'BackEnd > Java' 카테고리의 다른 글

[Java] 다차원 배열 Multi Array  (0) 2021.07.01
[Java] 배열 Array  (0) 2021.07.01
[Java] 스위치 Switch  (0) 2021.07.01
[Java] 반복문 for  (0) 2021.07.01
[Java] 조건문 if  (0) 2021.07.01

댓글