Scanner 란 무엇인가.
정의 : 정규 표현을 사용해 원시적 형태 및 캐릭터 라인을 구문 분석 할 수있는 간단한 텍스트 스캐너입니다.
출처 : https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html
쉽게 말해서 , 사용자의 입력을 통한 프로그램이고 , 사용자의 입력을 받아줄 때 사용한다.
Scanner를 사용하기 위해서는 다음과 같이 진행하면 된다 .
1.import java.util.Scanner;
--> 소스코드 입력창에 위와 같은코드를 삽입한다 .
--> Scanner를 사용할 것이다 라고 선언한 것이다.
2.Scanner keyboard = new Scanner(System.in);
--> Scanner를 사용하기 위해 Scanner 변수를 하나 선언해 준다.
--> keyboard는 Scanner 변수이고 , System.in 은 System 클래스 내에 있느 in 메소드를 사용한 것이다 . input을 해줄 것이다 라고 생각하면 된다.
3.변수 선언이 되었다면 input할 완료가 된 것인데 , 이 input은 다음과 같은 명령어로 타입설정을 해서 받아 올 수있다.
--> keyboard.nexLine() ; 사용자가 입력한 한줄을 가져온다 ( 이때 타입은 String 형이다 )
--> keyboard.nextInt() ; 사용자가 입력한 값을 Int형으로 가져온다 . ( 이때 타입은 Int 형이다 )
4.소스를 통해 쉽게 이해해 봅시다.
package day04;import java.util.Scanner; // Scanner 를 쓸것이다 .public class BookApp {public static void main(String[] args) {while (true) { // 반복수행System.out.println("===============Book Application===============");System.out.println("===========원하는 메뉴 번호를 입력하세요.=============");System.out.println("1.입력");System.out.println("2.수정");System.out.println("3.삭제");System.out.println("4.검색");System.out.println("5.목록보기");System.out.println("6.종료");Scanner keyboard = new Scanner(System.in); // input 준비int input = keyboard.nextInt(); //사용자의 입력을 Int형으로 저장switch (input) { // 사용자의 input값에 따른 Switch문case 1:System.out.println("입력 작업 수행 모듈 호출 ");continue; // switch문을 빠져나가 while 문으로case 2:System.out.println("수정 작업 수행 모듈 호출");continue;case 3:System.out.println("삭제 작업 수행 모듈 호출");continue;case 4:System.out.println("목록 보기 작업 수행 모듈 호출");continue;case 5:System.out.println("검색 작업 수행 모듈 호출");continue;case 6:System.out.println("App을 종료");keyboard.close(); // keyboard 닫아주고keyboard = null; // keyboard null값 취해 주고 .System.exit(0); // 종료default: // default = case에 선언되지 않은 예외처리System.out.println(" 다시 입력하세요 . 입력 번호가 맞지 않습니다. ");default2:System.out.println("예외처리2");}}}}
보통 프로그램을 짤 때
사용자가 선언해 주는 모든 소스들은 메모리 상에 올라가게 된다.
쓸데없는 변수선언 처리와 길어진 수식처리들은 메모리상에 쓰레기메모리들을 초래할 수있다.
위 소스에서는 사용자의 input값을 받기 위해 keyboard라는 변수르 선언해 주었다.
선언을 해주었다면 close를 통해 메모리상으로 부터 해방을 시키고 ,
null값을 취해 줌으로써 주소값을 취하지 않게 한다.
이로써 사용자가 쓴 데이터들은 반환을 하게 된다.
'Backend > java' 카테고리의 다른 글
배열을 복사해 보자 (System.arraycopy) (0) | 2018.08.03 |
---|---|
예제를 통한 배열의 이해3(Arrays클래스) (0) | 2018.08.03 |
예제를 통한 배열이해(Array클래스) (0) | 2018.08.03 |
Math클래스를 알아보자. (0) | 2018.08.03 |
배열이란 무엇인가. (0) | 2018.08.03 |
#IT #먹방 #전자기기 #일상
#개발 #일상