본문 바로가기

Programing/Java

[Java] 예제 자료형과 기본 입출력 입력문

Java 자료형과 기본 입출력 예제



파일명:Ex04_입력문.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.io.IOException;
 
public class Ex04_입력문 {
    public static void main(String[] args) throws IOException{ // throws IOException 예외처리 코드
        
        System.out.print("한 문자 입력하세요");
        
        char ch = (char)System.in.read(); 
                //A를 넣어도 아스키 코드로 받아드려서 65가 입력됨 System.in.read()는 한글자만 입력됨
        //System.in.read();
        //System.in.read(); //버퍼에 남은 엔터를 없애는 작업을 함 맨 앞으로 가는 \r과 한줄 밑으로 가는 \n
        System.in.skip(2); //skip을 쓰면 위와 같은 기능을 함
        System.out.println("입력한 값:"+ch);
        
        /* ctrl+shift+/ 주석 단축키
        위와 같음
        int ch1 = System.in.read();
        System.out.println("입력한 값:"+(char)ch1);
        */
        
        int a,b;
        System.out.print("숫자1 : ");
        a = System.in.read()-48
                //System.in.read()는 문자로 받아드리기 때문에 아스키코드가 출력된다 그래서 아스키코드 48을 빼줌
        System.in.read();
        System.in.read();
        
        System.out.print("숫자2 : ");
        b = System.in.read()-'0';//문자 0을 빼줘도 됨 문자 0은 아스키코드로 48
        
        System.out.println("a="+a+"b="+b);
        System.out.println("a+b="+(a+b));
        System.out.println(a+"+"+b+"="+(a+b));
        System.out.printf("%d + %d = %d", a, b, a+b);
        
    }
 
}
cs

예제 코드


결과


프로그램에 자료를 입력하는 방법에는 여러가지가 있다.

그 중에 한가지로 System.in.read();가 있다.

위 코드는 키보드를 통하여 콘솔창으로 데이터를 입력 받을 수 있다.

테이터를 입력하면 보통 엔터를 치게 되는데 문자를 출력후 엔터값이 버퍼에 남아있어 다음 입력값에 영향을 끼치게 되므로

위 코드 처럼

System.in.read();

System.in.read();

을 사용하여 엔터 값에 해당하는 맨 앞으로 가는 \r과 한줄 밑으로 가는 \n의 값을 버퍼에서 제거하거나

System.in.skip(2);

를 써서 두번 skip하면 다음 입력에 영향을 주지 않는다.


read()를 사용하면 한 문자만 입력 가능하기 때문에 문자열이나 공백이 있는 문자열은 입력이 불가능 하다는 단점이 있다.