Java - 입력

develkkm·2025년 9월 9일

0부터 시작하는 Java

목록 보기
7/27

Scanner로 입력 받기

지금까지 변수, 연산자, 조건문, 반복문을 배웠다.
이제는 단순히 출력만 하는 프로그램이 아니라, 사용자로부터 입력을 받아 처리하는 프로그램을 만들어보자.

Java에서는 System.out으로 출력했듯이, System.in을 통해 입력을 받을 수 있다.
하지만 System.in만 단독으로 사용하면 처리 과정이 복잡하다.
그래서 Java는 입력을 간단하게 다룰 수 있도록 Scanner 클래스를 제공한다.


Scanner 기본 사용법

import java.util.Scanner;

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

        System.out.print("문자열을 입력하세요: ");
        String str = scanner.nextLine();  // 문자열 입력
        System.out.println("입력한 문자열: " + str);

        System.out.print("정수를 입력하세요: ");
        int intValue = scanner.nextInt();  // 정수 입력
        System.out.println("입력한 정수: " + intValue);

        System.out.print("실수를 입력하세요: ");
        double doubleValue = scanner.nextDouble();  // 실수 입력
        System.out.println("입력한 실수: " + doubleValue);
    }
}
  • nextLine() → 문자열 입력
  • nextInt() → 정수 입력
  • nextDouble() → 실수 입력

타입이 맞지 않는 값을 입력하면 오류가 발생한다.


  • print() : 출력 후 줄바꿈 없음
  • println() : 출력 후 줄바꿈 있음
System.out.print("hello");
System.out.print("world");
// 결과: helloworld

System.out.println("hello");
System.out.println("world");
// 결과:
// hello
// world

println("hello")는 사실상 print("hello\n")와 같다.


Scanner 실습 예제

두 수의 합 구하기

import java.util.Scanner;

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

        System.out.print("첫 번째 숫자를 입력하세요: ");
        int num1 = scanner.nextInt();

        System.out.print("두 번째 숫자를 입력하세요: ");
        int num2 = scanner.nextInt();

        int sum = num1 + num2;
        System.out.println("두 숫자의 합: " + sum);
    }
}

더 큰 수 찾기

import java.util.Scanner;

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

        System.out.print("첫 번째 숫자를 입력하세요: ");
        int num1 = scanner.nextInt();

        System.out.print("두 번째 숫자를 입력하세요: ");
        int num2 = scanner.nextInt();

        if (num1 > num2) {
            System.out.println("더 큰 숫자: " + num1);
        } else if (num2 > num1) {
            System.out.println("더 큰 숫자: " + num2);
        } else {
            System.out.println("두 숫자는 같습니다.");
        }
    }
}

Scanner와 반복문

입력은 한 번으로 끝나는 경우가 많지 않다.
Scannerwhile문을 결합하면 사용자가 종료를 선택할 때까지 반복 입력을 받을 수 있다.

문자열 반복 입력 (exit로 종료)

import java.util.Scanner;

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

        while (true) {
            System.out.print("문자열을 입력하세요 (exit: 종료): ");
            String str = scanner.nextLine();

            if (str.equals("exit")) {
                System.out.println("프로그램을 종료합니다.");
                break;
            }
            System.out.println("입력한 문자열: " + str);
        }
    }
}

합계 계산 (0 입력 시 종료)

import java.util.Scanner;

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

        int sum = 0;
        while (true) {
            System.out.print("정수를 입력하세요 (0을 입력하면 종료): ");
            int number = scanner.nextInt();

            if (number == 0) {
                break;
            }
            sum += number;
        }
        System.out.println("입력한 모든 정수의 합: " + sum);
    }
}
profile
알던것을 더 확실하게

0개의 댓글