foxpacking

Programming Lessons

Java 언어 Korean

Java 총 정리[7. 입력 명령문]

입력

이전 시간에 출력에 대해서 배웠습니다. 이제 생각을 하면 정해 놓은 내용 만을 출력을 하는 것은 프로그램이라고 생각을 할 수가 없습니다. 사용자의 명령이나 원하는 내용을 컴퓨터에게 전달을 해야 한다고 생각을 하지 않으시나요?

저도 당연히 처음 배울 때는 출력을 하기만 할 때는 흥미도 적고 내가 무언가를 명령을 하고 싶다는 생각을 많이 했습니다. 그럼 Java에서 명령이나 원하는 것을 출력을 하는 방법을 알아보고 사용을 하신다면 어렵지 않으실 겁니다.

이제 Eclipse를 활용해서 Java로 컴퓨터에게 명령어나 원하는 내용을 출력을 하게 하려면 어떻게 하면 될까요? 출력 때와 마찬가지로 행위가 일어나는 것이기 때문에 기능이고 메소드로 구현이 되어 있습니다.

이렇게 명령하거나 원하는 걸 출력을 하게 하려면 Java에서 입력을 해서 컴퓨터에게 명령을 하면 됩니다. 이 글을 처음부터 같이 읽고 하신다면 입력을 하실 수 있습니다.

Java에서 입력을 할 수 있는 명령문 즉 메소드는 무엇일까요? 입력을 하는 것을 모두 다 알기 보다는 자주 사용하고 필요한 위주로 설명을 드리겠습니다.

입력문

Scaner -> next(), nextInt(), nextFloat()

BufferedReader -> readLine()

위와 같이 Scanner를 이용한 next(), nextInt(), nextFloat()이 있고 BufferedReader에서는 readLine()이 있습니다. read()는 것도 있지만 이 부분은 컴퓨터의 문자를 표현하는 부분에서 추가적으로 설명을 드리겠습니다. 우선 위에서 설명한 4가지만 알아서 사용을 하셔도 입력과 출력을 이용해서 간단한 프로그램을 만들 수 있습니다. 당연히 변수와 연산자도 사용을 하면 더욱더 좋습니다. 

1. Scanner

Scanner를 사용해서 입력을 하는 것을 완벽하게 이해를 하시려면 우선 클래스와 객체를 이해 하셔야 하기 때문에 그때까지 입력을 하지 못하고 Java언어를 공부를 하는 것은 어렵습니다. 그래서 지금은 이런 방법으로 쓰면 입력을 할 수 있다고 생각을 하시고 입력을 하시면 됩니다. 추후에 클래스와 객체를 하면서 한번 더 언급을 해서 완벽한 이해를 도와드리겠습니다. 

그럼 Scanner에서 입력 명령문 즉 메소드는 next(), nextInt(), nextFloat()가 있습니다. 

  1. next() : 문자열을 입력 받습니다.
  2. nextInt() : 정수를 입력 받습니다.
  3. nextFloat() : 실수를 입력 받습니다.

여기서 조심 하셔야 할 부분이 있습니다. next() 같은 경우 숫자를 입력하던 무엇을 입력하던 문자열로 모두가 표현이 가능 합니다.

하지만 nextInt(), nextFloat() 같은 경우에는 숫자 타입이기 때문에 문자인 A나 B등이 들어가면 Error가 발생해서 프로그램이 종료되게 됩니다. 

이점을 유의 하시고 정수와 실수는 같은 숫자형이기 때문에 실수라고 해도 소수점을 안 넣어도 입력이 되고 정수여도 소수점을 넣으면 자동으로 제거에서 입력이 됩니다.

    
import java.util.Scanner; // Scanner를 사용하기 위한 Scanner 클래스 가져오기

public class InputTest {

	public static void main(String[] args) {

	// 입력을 하기위 한 Scanner 객체를 생성
	Scanner sc = new Scanner(System.in); 
	
	int num = sc.nextInt(); //정수를 입력 받은 값을 정수 변수 num에 대입
	float num1 = sc.nextFloat(); // 실수를 입력 받은 값을 실수 변수 num1에 대입
	String str = sc.next();// 문자열을 입력 받은 값을 문자열 변수 str에 대입
		
	System.out.println(num);// 변수 num을 출력
	System.out.println(num1);// 변수 num1을 출력
	System.out.println(str);// 변수 str를 출력
	}
}
    

Scanner를 사용하기 위해서 import를 이용해서 Scanner클래스를 가지고 와야 합니다. 그리고 객체 생성의 과정 즉 사용할 준비를 한다고 생각을 하시면 됩니다. 그 이후에 명령문(메소드)를 이용해서 입력 명령을 하게 됩니다.

Eclipse 실행

자바 입력 사진 1
자바 입력 사진 2

2. BufferedReader

BufferedReader를 사용하려면 당연히 BufferedReader를 가져와서 사용을 해야 하고 BufferedReader를 사용하기 위해 InputStreamReader를 가지고 와서 같이 사용을 해야 합니다. 

여기서 BufferedReader같은 경우 입력을 할 때 외부에서 입력이 들어 오는 상황이기 때문에 예외 처리를 해주는 클래스를 같이 사용을 하여야 사용이 가능 합니다.

 readLine()은 문자열 한 줄을 그대로 입력을 받아서 사용을 할 수 있습니다.

※ 예외 처리 관련 해서는 추후 에 설명을 자세히 할 예정입니다.

    
// BufferReader를 사용하기 위해 BufferedReader 클래스를 가져오기
import java.io.BufferedReader;

// IOException을 사용하기 위해 IOException 클래스를 가져오기
import java.io.IOException; 

// InputStreamReader를 사용하기 위해 InputStreamReader 클래스를 가져오기
import java.io.InputStreamReader; 


public class InputTest2 {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		//입력을 하기 위해서 BufferedReader 객체를 생성시 
		//InputStreamReader 객체 넣어줍니다.
		//생성을 하기 위해서 InputStreamReader 객체를 생성을 할 때 
		//System.in(입력 시스템을 넣어서 만든다.)
		BufferedReader br =
		     new BufferedReader(new InputStreamReader(System.in));
		// 문자열 입력을 받아서 문자열 변수 str에 대입
		String str = br.readLine(); 
		
		// 문자열 변수 str 출력
		System.out.println(str); 
	}
}
    

Eclipse 실행

자바 입력 사진 3
자바 입력 사진 4

Dolphin

About Author

Leave a comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You may also like

Korean Programming 기초

IT 개발자 VS 프로축구선수 비교?

IT 개발자와 프로축구선수의 같은 점과 다른 점? 프로그래밍 공부를 하시면서 개발자로 취업을 하려고 하는데 과연 취업을 할 수 있을까? IT
Korean 클라우드

AWS 로그인 불가능, AWS고객 센터 이메일 문의 결과는?

AWS 고객센터 이메일 문의 솔직후기 AWS를 사용하기 위해 로그인을 하는 경우 이메일로 코드 번호를 보내지만 이메일로 받을 수 없는 상황이거나