본문 바로가기
개발 이야기/자바

[JAVA] 자바 scanf 사용하기

by 런던살자 2019. 7. 5.

안녕하세요 마블랑입니다.

 

자바를 처음 배울때 C와는 다르게 scanf처럼 값을 입력받는 기능을 사용할수 없어서 실습할때 구현할수 있는것이 한정적이었던것이 기억나는군요.

 

프로그래밍 언어는 실습하면서 배우는것을 좋아해서 작은 프로그램이라도 만들어보고 싶었는데 그것을 할수없었죠..

 

마블랑같은 분들이 있을거 같아 자바에서도 scanf 기능이 제공되는것을 포스팅 하였습니다.

 

 

아래 화면처럼 녹색으로 표시되는 값이 사용자가 입력한 값입니다.

 

그리고 검은색으로 표시되는것은 println으로 입력받은 문자열을 표시해주는 것이죠

 

그리고 역시 "exit"를 입력을 하면 프로그램이 종료되게 해두었습니다.

 

 

 

자바에서 사용자 값을 입력받는 것은 두가지 방법이 있습니다. 

 

하나는 BufferedReader 객체를 생성해서 InputStreamReader를 불러오는 방법이 있고요

 

다른 방법은 Scanner 객체를 생성하여 입력값을 받는 방법이 있습니다. 

 

둘다 코드가 간단하므로 하나를 선택해서 사용하시면 될거 같습니다.

 

 

1. BufferedReader  

package main;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class main {
	public static void main(String[] args) {

		System.out.println("Input Messages : ");
		try {
			BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in));
			String strMsg;
			while (true) {
				strMsg = bufferRead.readLine();

				System.out.println(strMsg);
				
				if (strMsg.equals("exit")) {
					break;
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
    }
}

 

2. Scanner  

package main;

import java.util.Scanner;

public class main {
	public static void main(String[] args) {
	
		System.out.println("Input Messages : ");

		Scanner scan = new Scanner(System.in);
		String strMsg;
		while(true) {
			strMsg = scan.nextLine();

			System.out.println(strMsg);
			if (strMsg.equals("exit")) {
				break;
			}
		}
		scan.close();
	}
}

 

두개의 코드 모두 동일하게 동작하도록 코딩을 해두었습니다. 

 

Scanner 객체를 구현할때는 예외문(try catch)을 깜빡하고 추가를 하지 않았군요..

 

사용하실때 예외문을 추가하여 사용하는것이 에러 발생률을 더 줄이는 방법이라고 생각합니다. (에러가 발생할일은 거의 없을듯 합니다.)

 

 

이상 마블랑이었습니다.

 

읽어주셔서 고맙습니다.

 

댓글