본문 바로가기
Java

실무에서 바로 쓰는 Java While 루프: 기본부터 고급 활용까지

by Status Code 2024. 2. 15.

1. 사용자 입력 받기 예제

이 예제는 사용자로부터 입력을 받아서 처리하는 방법을 보여줍니다. 사용자가 'exit'를 입력할 때까지 계속해서 사용자의 입력을 받아 출력합니다.

import java.util.Scanner;

public class GetUserInput {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String userInput;

        while (true) {
            System.out.println("종료하려면 'exit'를 입력하세요: ");
            userInput = scanner.nextLine();

            if ("exit".equalsIgnoreCase(userInput)) {
                break;
            }

            System.out.println("입력된 내용: " + userInput);
        }
        scanner.close();
    }
}

2. 파일의 모든 라인 읽기 예제

이 예제는 파일을 열어서 그 안의 내용을 한 줄씩 읽어서 출력하는 방법을 보여줍니다. 파일의 끝에 도달할 때까지 파일 내용을 계속 읽습니다.

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadFile {
    public static void main(String[] args) {
        String line;
        try (BufferedReader br = new BufferedReader(new FileReader("example.txt"))) {
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

3. 숫자의 합계 계산 예제

이 예제는 사용자로부터 숫자를 입력받아 그 합계를 계산합니다. 사용자가 0을 입력하면 입력을 종료하고 최종 합계를 출력합니다.

import java.util.Scanner;

public class SumNumbers {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int sum = 0;
        int number;

        while (true) {
            System.out.println("숫자를 입력하세요 (종료하려면 0을 입력): ");
            number = scanner.nextInt();

            if (number == 0) {
                break;
            }

            sum += number;
        }

        System.out.println("입력된 숫자의 합계: " + sum);
        scanner.close();
    }
}

4. 데이터베이스 행 처리 예제

이 예제는 데이터베이스에서 조회된 결과를 처리하는 방법을 보여줍니다. SELECT 쿼리를 사용하여 데이터베이스에서 데이터를 읽고, 결과 집합을 순회하면서 각 행의 정보를 출력합니다.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class DatabaseFetch {
    public static void main(String[] args) {
        String jdbcURL = "jdbc:yourdatabaseurl";
        String username = "yourusername";
        String password = "yourpassword";

        try (Connection connection = DriverManager.getConnection(jdbcURL, username, password);
             Statement statement = connection.createStatement();
             ResultSet resultSet = statement.executeQuery("SELECT * FROM your_table")) {

            while (resultSet.next()) {
                System.out.println(resultSet.getString("column_name"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

5. 배열 순회 예제

이 예제는 배열을 순회하면서 특정 조건을 만족하는 요소를 찾는 방법을 보여줍니다. 여기서는 배열 내에서 특정 숫자를 찾고, 그 숫자가 배열에 존재하는지 여부를 출력합니다.

public class ArraySearch {
    public static void main(String[] args) {
        int[] numbers = {1, 4, 6, 7, 8, 10};
        int i = 0;
        int toFind = 7;
        boolean found = false;

        while (i < numbers.length) {
            if (numbers[i] == toFind) {
                found = true;
                break;
            }
            i++;
        }

        if (found) {
            System.out.println(toFind + "을(를) 찾았습니다.");
        } else {
            System.out.println(toFind + "이(가) 배열에 없습니다.");
        }
    }
}

6. 타이머 구현 예제

이 예제는 간단한 타이머 기능을 구현합니다. 지정된 시간 동안 대기한 후, 시간이 지났음을 알리는 메시지를 출력합니다.

public class SimpleTimer {
    public static void main(String[] args) {
        int timeToWait = 5; // 5초 대기
        long startTime = System.currentTimeMillis();

        while ((System.currentTimeMillis() - startTime) < timeToWait * 1000) {
            // 5초 동안 대기
        }

        System.out.println("5초가 지났습니다!");
    }
}

7. 사용자 입력 검증 예제

이 예제는 사용자 입력을 검증하는 방법을 보여줍니다. 사용자가 유효한 범위 내의 숫자를 입력할 때까지 반복해서 입력을 요청합니다.

import java.util.Scanner;

public class InputValidation {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int userInput;

        while (true) {
            System.out.print("1과 10 사이의 숫자를 입력하세요: ");
            userInput = scanner.nextInt();

            if (userInput >= 1 && userInput <= 10) {
                break; // 유효한 입력
            }

            System.out.println("잘못된 입력입니다. 다시 시도하세요.");
        }

        System.out.println("입력 받은 숫자: " + userInput);
        scanner.close();
    }
}

8. 진법 변환 예제

이 예제는 주어진 숫자를 다른 진법으로 변환하는 방법을 보여줍니다. 숫자를 지정된 진법으로 변환하여 그 결과를 출력합니다.

public class BaseConversion {
    public static void main(String[] args) {
        int number = 156; // 변환할 숫자
        int base = 2; // 목표 진법
        StringBuilder result = new StringBuilder();

        while (number > 0) {
            result.insert(0, number % base); // 나머지를 결과 문자열 앞에 추가
            number /= base; // number를 base로 나눔
        }

        System.out.println("변환된 값: " + result.toString());
    }
}

댓글