✶Language/JAVA
[JAVA] Scanner 이용해 입력 받기
soonybutter
2024. 7. 14. 01:32
728x90

자바의 Scanner 클래스
자바는 Scanner라는 메소드를 이용해서 사용자의 입력을 받는다.
1. 입력 하는 데이터의 타입에 따라 구분한다.
int형 | nextInt() |
String형 | next() 혹은 nextLine() |
int형은 nextInt() 을, String형은 nextLine() 혹은 nextLine() 을 사용해서 입력을 받을 수 있다.
next() :
- 공백을 기준으로 한 단어 또는 한 문자씩 입력받는다.
- 버퍼에 입력된 문자나 문자열에서 공백 전까지의 단어를 읽는다.
- 개행 문자를 가져오지 않는다.
nextLine() :
- 문자 또는 엔터를 치기 전까지의 문장 전체를 입력받는다.
- 버퍼에 입력된 문자열을 개행 문자까지 다 가져온다.
ex)
Scanner scanner = new Scanner(System.in);
String food= scanner.nextLine();
메인 함수 안에 이렇게 scanner을 사용하면,
사용자는 food에 해당하는 string 을 입력한다.
2. Scanner 사용시 util 패키지를 Scanner 클래스를 호출해야한다.
Scanner 의 경우는 java.util 패키지에 있다.
인텔리제이를 사용할 경우 자동으로 inport가 추가된다.
Scanner 을 사용한 입력 예시
public class Scanner9_diff
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
System.out.print("음식 이름을 입력해주세요: ");
String food= scanner.nextLine();
System.out.print("음식의 가격을 입력해주세요: ");
int price=scanner.nextInt();
System.out.print("수량을 입력해주세요: ");
int many= scanner.nextInt();
System.out.println(food+" "+many+"개를 주문하셨습니다. 총 가격은 "+price*many+"원입니다.");
}
}

초록색부분이 입력값을 직접 입력해준 부분이다.
원하는대로 입력받고 출력도 된 것을 확인 할 수 있다.
예제1
문제 출처: 김영한_자바

다음과 같은 조건에 맞춰 코드를 작성하면 아래와 같이 나타낼 수 있다.
public class Ex4_dif
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
int totalCost = 0;
while(true) {
System.out.println("1: 상품 입력, 2: 결제, 3; 프로그램 종료");
int option = scanner.nextInt();
if (option == 1)
{
scanner.nextLine();
System.out.print("상품명을 입력하세요: ");
String name = scanner.nextLine();
System.out.print("상품의 가격을 입력하세요: ");
int price = scanner.nextInt();
System.out.print("구매 수량을 입력하세요: ");
int quantity = scanner.nextInt();
totalCost+=price*quantity;
System.out.println("상품명:" + name + " 가격:" + price + " 수량:" + quantity + " 합계:" + price*quantity);
}
else if (option == 2)
{
System.out.println("총 비용: " + totalCost);
totalCost=0;
}
else if(option==3)
{
System.out.println("프로그램을 종료합니다!");
break;
}
else
{
System.out.print("올바른 옵션을 선택해주세요.");
}
}
}
1을 입력했을때, 2를 입력했을때, 그리고 3을 입력했을때 정상적으로 종료되는지 입력해보면
아래와 같이 성공적으로 작동하는 것을 확인 할 수 있다.

틀린 부분이나 이상한 부분이 있으면 댓글로 지적해주세요!
감사합니다 :)
728x90