반응형
- Scanner 클래스 : 입력스트림(키보드, 파일 등)을 이용하여 원하는 자료형의 값을 제공받을 수 있는 기능(메소드)이 작성된 클래스
→ Scanner 클래스로 객체를 생성해야만 객체로 클래스의 메소드를 호출할 수 있다.(이런 메소드를 갖다 쓰려면 객체를 만들어야 한다. 객체로 만들어주는 연산자가 new이다) - new Scanner(System.in) : 키보드 입력스트림을 사용하여 Scanner 객체 생성
- new Scanner(System.in) 명령으로 키보드 입력스트림을 사용해 Scanner 객체 생성하고 생성된 객체를 참조변수에 저장
→ 참조변수에 저장된 객체를 사용하여 메소드 호출 - Scanner.nextLine() : Scanner 객체의 입력스트림을 사용하여 입력값을 문자열로 변환하여 반환하는 메소드
→ 키보드로 입력된 값을 문자열로 변환하여 반환받아 변수에 저장
→ 키보드 입력값이 없는 경우 프로그램의 흐름(스레드)이 일시 중지
→ 키보드로 값을 입력한 후 엔터(Enter)를 눌러 프로그램의 흐름이 재실행되도록 처리 - Scanner.nextInt() : Scanner 객체의 입력스트림을 사용하여 입력값을 정수값으로 변환하여 반환하는 메소드
→ 입력값이 정수값이 아닌 경우 예외(Exception) 발생 - 예외가 발생하면 프로그램 강제 종료 - Scanner.close() : Scanner 객체가 사용한 입력스트림을 제거하는 메소드
- System.out : 값(1Byte - 원시데이터)을 화면(콘솔)에 출력하기 위한 객체 - 출력스트림
- System.in : 키보드로부터 입력된 값(1Byte - 원시데이터)을 얻어와 제공하기 위한 객체 - 입력스트림
- System.in.read(); 문자값 하나만 읽어드림 => 문자값 하나만 읽는건 의미가 없기에 스캐너 클래스 사용
- new java.util.Scanner(System.in);
라이브러리 패키지 안에 있는 클래스를 쓰는거기 때문에 패키지를 명시해야함.
단, java.lang 패키지 안에 있는건 상관없다.(상단에 import를 안해줘도 사용 가능)
//다른 패키지의 클래스를 소스파일에서 사용할 수 있도록 제공하는 키워드
import java.util.Scanner;
//System.out : 값(1Byte - 원시데이터)을 화면(콘솔)에 출력하기 위한 객체 - 출력스트림
//System.in : 키보드로부터 입력된 값(1Byte - 원시데이터)을 얻어와 제공하기 위한 객체 - 입력스트림
//키보드로 이름과 나이를 입력받아 화면에 출력하는 프로그램 작성
public class ScannerApp {
public static void main(String[] args) {
//System.in.read(); 문자값 하나만 읽어드림 => 문자값 하나만 읽는건 의미가 없기에 스캐너 클래스 사용
//new java.util.Scanner(System.in);
//라이브러리 패키지 안에 있는 클래스를 쓰는거기 때문에 패키지를 명시해야함.
//단, java.lang 패키지 안에 있는건 상관없다.(상단에 import를 안해줘도 사용 가능)
//Scanner 클래스 : 입력스트림(키보드, 파일 등)을 이용하여 원하는 자료형의 값을
// 제공받을 수 있는 기능(메소드)이 작성된 클래스
//=> Scanner 클래스로 객체를 생성해야만 객체로 클래스의 메소드를 호출할 수 있다.
//(이런 메소드를 갖다 쓰려면 객체를 만들어야 한다. 객체로 만들어주는 연산자가 new이다)
//new Scanner(System.in); : 키보드 입력스트림을 사용하여 Scanner 객체 생성
//new Scanner(System.in) 명령으로 키보드 입력스트림을 사용해 Scanner 객체 생성하고
// 생성된 객체를 참조변수에 저장
//=> 참조변수에 저장된 객체를 사용하여 메소드 호출
Scanner scanner=new Scanner(System.in); //상단에 import 시켜서 패키지 명시할 필요 없음.
//Scanner 객체를 참조변수에 저장 / Scanner 클래스는 파일로 저장되어있다.(java.util 패키지 안에 있음)
//java.util.Scanner scanner=new java.util.Scanner(System.in);
//=> 앞에 java.util을 붙이면 되는데, 매번 이렇게 쓰기 귀찮으니 문서 상단에
//import java.util.Scanner; 추가가 되어야 되는데, 이거는 스캐너 객체 쓰면 알아서 생성된다.
//=> 참조변수에 저장된 객체를 사용하여 메소드 호출
//Scanner.nexrLine() : Scanner 객체의 입력스트림을 사용하여 입력값을 문자열로 변환하여
// 반환하는 메소드
//=> 키보드로 입력된 값을 문자열로 변환하여 반환받아 변수에 저장
//=> 키보드 입력값이 없는 경우 프로그램의 흐름(스레드)이 일시 중지
//=> 키보드로 값을 입력한 후 엔터(Enter)를 눌러 프로그램의 흐름이 재실행되도록 처리
System.out.print("이름 입력 >> ");
String name=scanner.nextLine(); //메소드를 호출하면, 메소드를 호출하여 발생하는 결과값을 반환한다.
//Scanner.nexrInt() : Scanner 객체의 입력스트림을 사용하여 입력값을 정수값으로 변환하여
// 반환하는 메소드
//=> 입력값이 정수값이 아닌 경우 예외(Exception) 발생 - 예외가 발생하면 프로그램 강제 종료
System.out.print("나이 입력 >> ");
//키보드로 입력된 정수 값을 정수값으로 변환하여 반환받아 변수에 저장
int age=scanner.nextInt();
System.out.println("[결과]"+name+"님의 나이는 "+age+"살입니다.");
//Scanner.close(); : Scanner 객체가 사용한 입력스트림을 제거하는 메소드
scanner.close();
}
}
반응형
'지식공유 > JAVA' 카테고리의 다른 글
JAVA 수업 복습 정리(11)_Math 클래스, 난수값(java/프로그래밍/백엔드/Random/개발) (0) | 2024.11.12 |
---|---|
JAVA 수업 복습 정리(10)_2차원 배열(java/프로그래밍/백엔드/Double Array/개발) (0) | 2024.11.11 |
JAVA 수업 복습 정리(8)_제어문(if, switch, for, while, break, continue, return)/Operator/java/프로그래밍 (0) | 2024.08.05 |
JAVA 수업 복습 정리(7)_연산자/Operator/java/프로그래밍 (0) | 2024.08.03 |
JAVA 수업 복습 정리(6)_형변환/TypeCast/java/프로그래밍 (0) | 2024.06.26 |
댓글