Categories: 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 실행

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 실행

Dolphin

Recent Posts

Java 총정리[97. Java GUI]

Java GUI Java GUI에 대해서 이번 걸음에서 배움으로써 GUI에 전반적인 지식과 Java GUI를 구현하는 방법…

7개월 ago

Java 총정리[96. Java TCP 통신 프로그램 구현]

Java TCP 통신 프로그램 구현 Java TCP 통신 프로그램 구현을 위해서 이전 걸음에서 쓰레드에 대한…

7개월 ago

Java 총정리[95.쓰레드 통신]

쓰레드 통신 이전 걸음에서 쓰레드의 임계영역에 대해서 같이 공부를 했습니다. 동기화에 대한 개념을 계속적으로 하고…

7개월 ago

Java 총 정리[94. 쓰레드 임계영역]

쓰레드 임계영역 이전 걸음에서 쓰레드의 동기화에 대해서 같이 공부를 했습니다. 동기화에 대한 전반적인 내용을 공부하고…

8개월 ago

Java 총 정리[93. 쓰레드 동기화]

쓰레드 동기화 이전 걸음에서 계속 쓰레드에 대해서 공부를 하고 있습니다. 쓰레드는 상당히 중요한 개념이기 때문에…

8개월 ago

Java 총 정리[92. 쓰레드 join()]

쓰레드 join() 이전 걸음에서 쓰레드의 전반적인 실행 흐름에 대해서 공부를 했습니다. 이제 배운 실행 흐름…

8개월 ago

This website uses cookies.