본문 바로가기
👨‍💻 프로그래밍/Java, Kotlin, Spring

자바 11 - 유저로부터 데이터 받아오기 (Scanner 클래스 사용)

by 개발자 진개미 2021. 4. 22.
반응형

우리가 프로그램을 만들 때 유저로부터 데이터를 가져와야 할 때가 많이 있다. 이럴 땐 어떻게 할까? Scanner 클래스를 사용한다. 클래스를 활요하는 것의 의미는 Math 클래스 편에서 소개했다. 여기 참고

 

1. Scanner 활용

2. Scanner 예제

 


1. Scanner 활용

Scanner를 사용하기 위해서는 우선 Scanner를 import해야 한다. 우리가 컴퓨터를 사용할 때도 (포토샵 같은) 유용한 프로그램을 사용하기 위해선 먼저 다운로드를 하여야 하듯이, 프로그램에서도 유용한 클래스를 사용하기 위해선 import를 해야 한다.

import java.util.Scanner;

위의 코드는 java 클래스 안에 있는 util 클래스 안에 있는 Scanner를 import한 코드이다. Scanner를 사용하기 전에 반드시 이 코드를 써야 하고, 일반적으로 클래스의 import문은 프로그램의 가장 위에 한 번에 쓴다.

 

이제 Scanner를 쓸 수 있게 됐는데, 어떻게 써야 할까? Scanner를 쓰기 위해선 언뜻 보면 암호같아 보이는 코드를 써야 한다

import java.util.Scanner;

Scanner stdin = new Scanner(System.in);

이 코드가 의미하는 것은 Scanner의 인스턴스를 stdin이라는 이름으로 생성한다는 뜻이다. 이게 무슨 뜻일까? 클래스는 쉽게 말해 자동차가 뭔지를 알려주는 틀이다. 자동차는 금속으로 이루어져 있고, 크기가 있고, 달릴 수 있고, 멈출 수 있다를 알려주는 게 클래스고, 이를 실제로 구체적인 형태로 만든 게 인스턴스다. 자동차의 추상적인 레시피만 가지고 서울에서 부산까지 갈 수 없다. 실제로 공장에서 자동차를 만들어야 한다. 비슷하게, 클래스만으로는 원하는 작업을 수행할 수 없다. 유저로부터 데이터를 받아오기 위해선 인스턴스를 만들어야 한다.

 

인스턴스를 만들었으면 그 안에 있는 매소드(동작들)을 불러내서 사용하면 된다. 일반적으로 next + 유저로부터 받길 원하는 데이터 타입의 이름과 괄호를 써서 명시한다. 괄호는 매소드라는 표시이다. 단, String 타입의 경우는 nextLine을 써야 한다.

import java.util.Scanner;

Scanner stdin = new Scanner(System.in);

int var1 = stdin.nextInt();
double var2 = stdin.nextDouble();
String var3 = stdin.nextLine();

2. Scanner 예제

자판기 프로그램

유저한테 어떤 종류의 음료수가 있는지 숫자로 차례대로 표시하고, 유저로부터 숫자를 받아와 그 숫자에 해당하는 음료수를 출력하는 프로그램을 만들어보자. 음료수의 종류는 콜라, 사이다, 환타, 오렌지주스, 포도주스가 있다.

 

정답:

import java.util.Scanner;

Scanner stdin = new Scanner(System.in);

System.out.print("1: 콜라, 2: 사이다, 3: 환타, 4: 오렌지주스, 5: 포도주스 ");
int beverageNum = stdin.nextInt();

if(beverageNum == 1)
	System.out.println("콜라가 나왔습니다!");
else if(beverageNum == 2)
	System.out.println("사이다가 나왔습니다!");
else if(beverageNum == 3)
	System.out.println("판타가 나왔습니다!");
else if(beverageNum == 4)
	System.out.println("오렌지 주스가 나왔습니다!");
else if(beverageNum == 5)
	System.out.println("포도 주스가 나왔습니다!");
else
	System.out.println("버튼이 눌려지지 않았습니다.");

 

반응형

'👨‍💻 프로그래밍 > Java, Kotlin, Spring' 카테고리의 다른 글

자바 13 - for 루프  (2) 2021.04.26
자바 12 - String의 모든 것!  (0) 2021.04.24
자바 10 - Math 클래스에 있는 매소드 활용  (0) 2021.04.20
자바 9 - switch문  (2) 2021.04.18
자바 8 - if문  (0) 2021.04.16