Please Enable JavaScript!
Gon[ Enable JavaScript ]

자바(Java) do-while 반복문 사용하기

자바(JAVA)
반응형

“do while” 반복문은 코드 블록을 최소 한 번 실행한 후, 조건이 참인 동안 계속해서 반복적으로 실행하는 제어 구조입니다. “while” 반복문과 차이점은 조건이 처음부터 거짓이더라도 코드 블록은 최소 한 번은 실행합니다.

 

 

◎ 구문

 

 

do {
    // 코드 블록
} while (조건);
 
l  코드 블록”: 반복적으로 실행될 문장들의 집합입니다.
l  조건”: 반복 여부를 결정하는 논리 표현식입니다.

 

 

◎ 예제 1. 주사위 게임

 

주사위 숫자인 1~6 사이의 값을 랜덤으로 출력하는데 사용자에게 주사위를 계속 굴릴지 계속해서 물을 때 do while 을 사용한 예제입니다. while 문의 조건은 “answer.equalsIgnoreCase("y")”로 사용자가 "y"를 입력했는지 확인합니다. n 을 눌러 종료하면 “System.out.println("총합: " + total)”: 주사위 굴린 결과의 총합을 출력합니다. 

int dice;
int total = 0;
 
do {
    dice = (int) (Math.random() * 6) + 1;
    System.out.println("주사위 눈금: " + dice);
    total += dice;
 
    System.out.print("계속 주사위를 굴릴까요? (y/n): ");
    String answer = System.console().readLine();
} while (answer.equalsIgnoreCase("y"));
 
System.out.println("총합: " + total);
 
[출력]
“주사위 눈금: 5
계속 주사위를 굴릴까요? (y/n): y
주사위 눈금: 3
계속 주사위를 굴릴까요? (y/n): y
주사위 눈금: 6
계속 주사위를 굴릴까요? (y/n): n
총합: 14”

 

 

◎ 예제 2. 사용자 입력값 유효성 검사

 

사용자에게 숫자만 입력 받고 싶을 때 사용할 만한 예제입니다. do while 문을 사용해서 사용자가 입력한 값을 “!input.matches("[0-9]+")”로 판단하고 문자열이 숫자인지 검사합니다. 만약 숫자가 아니라면 다시 반복을 진행합니다. 

String input;
 
do {
    System.out.print("숫자를 입력하세요 (0 to quit): ");
    input = System.console().readLine();
} while (!input.matches("[0-9]+"));
 
int number = Integer.parseInt(input);
 
System.out.println("입력된 숫자: " + number);
 
[출력]
“숫자를 입력하세요 (0 to quit): a
숫자를 입력하세요 (0 to quit): 123
입력된 숫자: 123”

 

 

◎ 예제 3. 파일 읽기

 

“Scanner” 클래스를 사용하여 "input.txt" 파일을 읽습니다. 파일의 내용은 “do while” 루프를 사용하여 파일 끝에 도달할 때까지 각 라인을 읽고 출력합니다. do while 에 사용한 조건문으로 파일의 내용에서 읽을 라인이 더 있는지 “scanner.hasNextLine()”코드로 확인합니다. 마지막에 파일을 읽을 때 사용한 “scanner.close()”파일 스캐너를 닫습니다. 

import java.util.Scanner;
 
public class FileReadExample {
 
    public static void main(String[] args) throws Exception {
        Scanner scanner = new Scanner(new File("input.txt"));
        int lineNumber = 0;
 
        do {
            lineNumber++;
            String line = scanner.nextLine();
            System.out.println("[" + lineNumber + "] " + line);
        } while (scanner.hasNextLine());
 
        scanner.close();
    }
}
 
[출력]
“[1] This is the first line.
[2] This is the second line.
[3] This is the third line.”

 

 

◎ 예제 4. 무한 루프 주의점

 

반복문에서 주의할 것은 무한 반복에 빠지는 오류입니다. do while 반복문은 조건을 충족시키지 않아도 최소한 한 번은 반복됩니다. 따라서 조건을 신중하게 설정하지 않으면 무한 루프에 빠질 수 있습니다.

 

예제에서는 사용자로부터 1부터 100 사이의 짝수를 입력받습니다. 사용자가 조건에 맞지 않는 숫자를 입력하면 프로그램이 메시지를 출력하고 사용자로부터 다시 입력을 받습니다. 이렇게 함으로써 무한 루프에 빠질 수 있는 위험을 줄이고 조건을 갱신하는 방법을 보여줍니다.

import java.util.Scanner;
 
public class DoWhileExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int number;
        boolean validInput;
 
        do {
            System.out.print("1부터 100 사이의 짝수를 입력하세요: ");
            number = scanner.nextInt();
 
            // 입력된 숫자가 1부터 100 사이의 짝수인지 확인
            validInput = (number >= 1 && number <= 100) && (number % 2 == 0);
 
            if (!validInput) {
                System.out.println("잘못된 입력입니다. 다시 입력하세요.");
            }
        } while (!validInput);
 
        System.out.println("입력된 짝수: " + number);
    }
}

 

반응형
Posted by 녹두장군1
,