BE/Java [Servlet , Spring]

자바에서 값을 입력받는 Scanner 메소드 사용법 + next()

시녜's 2023. 1. 2. 18:46

1. Scanner란

키보드로 값을 입력받기 위한 클래스이다.

-  스캐너 클래스를 사용하기 위해서는 스캐너 메소드를 호출한다.

 

[호출 방법]

1) 클래스 내에서 Scanner 변수명 = new Scanner(System.in);을 작성해 스캐너 변수를 생성한다.

2) Scanner를 클릭해 scanner(java.util)을 클릭하면 위에 import문이 자동 생성된다.

3) 자바의 java.util 패키지 안에 scanner클래스가 있어 import로 호출

import java.util.Scanner;

2. 클래스 객체 생성 

import java.util.Scanner;

public class Example03 {
	public static void execute() {
		Scanner s = new Scanner(System.in); 		
}
	}

[ Scanner 변수 = new(System.in) ]

System.in은 사용자로부터 입력을 받기 위한 입력 스트림이다.

System.out.print("시간>");
		int time = s.nextInt();
		
		if(time == 6) {
			System.out.println("기상하세요");
		}else if(time == 9) {
			System.out.println("출근 시간입니다.");
		}else if(time == 12) {
			System.out.println("점심 시간입니다.");
		}else if(time == 18) {
			System.out.println("퇴근시간입니다.");
		}else {
			System.out.println("잘못된 시간입니다.");
		}

- s.nextInt();로 정수로 이루어진 '시간'을 직접 입력받도록 한다.

- 입력한 시간에 따라 콘솔 창에 값이 다르게 도출된다.

 

3. next메소드로 입력값 받아오기

-  스캐너의 변수에 .next()나 .nextLine()을 붙이면 직접 입력한 "문자"를 받아올 수 있고

- .nextInt()를 붙이면 "정수"를, nextDouble()를 붙이면 "실수"를 받아올 수 있다.

System.out.print("이름>"); 
		String name = s.next();
		
		System.out.print("국어>");
		int kor = s.nextInt();
		
		System.out.print("영어>");
		int eng = s.nextInt();
				
		System.out.print("수학>");
		int math = s.nextInt();
		
		int sum = kor + eng + math;
		double avg = sum/3.;
		
        System.out.printf("이름은 %s입니다",name);
		System.out.printf( "%s의 평균점수는 %f입니다",name, avg);

이름을 입력받아 name에 저장 -> 문자열이라 next()

국어점수는 kor에 영어점수는 eng에 수학점수는 math에 저장한다. -> 정수라서 nextInt()

 

next()와 nextLine() 메소드 차이

next() : 콘솔 창에서 공백까지 입력한 값을 받아옴 (띄어쓰기 하고 적은 값은 받지 않는다)
nextLine() : 콘솔 창에서 엔터 누르기 전까지 입력된 값을 받아옴 (공백을 모두 포함하여 데이터를 받아온다)

※ next또는 nextInt를 위에서 작성한 뒤 아래에서 nextLine을 작성하면 앞에 작성된 next의 엔터값을 모두 받아와 버리기 때문에 작성한 next 또는 nextInt 뒤에 nextLine을 붙여준다. (엔터값 소멸시키기 위함)

예) int menu = s.nextInt(); s.nextLine();