자료의 입출력 (Inputs and Outputs)

자료의 입력과 출력을 위한 메서드에 대해 배움

출력메서드

println()

  • println은 여러가지 자료형을 입력할 수 있다.
  • ln == line에 약자이고 new line을 뜻함
  System.out.println("String cㅜa be printed."); //문자열도 출력가능
        System.out.println('c');//문자도 출력가능
        System.out.println(40234); //정수도 출력가능
        System.out.println(1.52f); //float도 출력가능
        System.out.println(15.2434);// double도 출력가능

printf()

  • printf는 포맷문자를 사용하여 출력함
  • 자료형에 맞는 포맷문자를 사용하고 ','를 사용하여 포맷문자에 해당하는 내용을 입력함
  • %s = string / %b = boolean / %d =10진수 %x=16진수, %o=8진수 / %f = floatin number = double, flaot
    %e = 지수 / \u0 = 유니코드 / %n = new line / 등이 포맷문자가 있음
  • %(숫자)d를 통해 숫자만큼의 빈칸을 확보할 수 있음
  • 확보한 빈칸의 숫자만큼을 초과하더라도 내용은 모두 출력됨
  • 실수에 자릿수 표현은 %0.0f로 표현되고 뒤에수는 자릿수를 뜻하고 앞에수는 표현할 칸수를 뜻함
  • 이외에도 시간과 날짜를 출력하는 포맷문자도 존재한다
System.out.printf("%s is for string\n", "STRING"); //%s는 스트링자리, newline은 수동
        System.out.printf("%s %s %s\n","123","456","15234");
        System.out.printf("%b\n", true); // b=boolean
        System.out.printf("%d 0x%x 0X%X 0%o \n",15,15,15,15); //d=10진수, x= 16진수 , o=8진수
                                    //10진수와 구분위해 16진수에는 앞에0x를 붙이고 8진수에는 0을붙임
        System.out.printf("%f\n",14.23); // f는 float 이 아닌 floating number로 float,double둘다 들어갈 수 있음
        System.out.printf("%f\n",14.23f); // %f로 float형도 입력 가능
        System.out.printf("%e\n",14.423); // 지수표현
        System.out.printf("%c %c\n", 'U','\u0042'); //U B 문자, 유니코드표현가능
        System.out.printf("%n"); //%n == new line

        System.out.printf("%5d.\n", 10); //우측정렬하고 5칸확보 // .은 공간보려고 찍음
        System.out.printf("%-5d.\n", 10); // 좌측정렬하고 5칸빈칸확보
        System.out.printf("%05d\n", 234); //5칸 앞에 0을 붙이면 빈곳은 00으로 표현됨
        System.out.printf("%3d\n", 104294);//3칸은 최소한 확보, 넘처도 출력은 다한다
        System.out.println("");


        //실수 자릿수 표현
        System.out.printf("%5.4f\n", 152523.456228); //5.4에 .4는 네자리까지 표현, 5는 최소 5칸확보하고 표현
                                                     //칸은 소숫점 끝짜리에서 시작
        System.out.printf("%5.2f\n", 1.425); //2자리까지 표현하고 5칸 확보해야되니까 1앞에 빈칸하나채움
                                            // 표현된 자리부터 5칸을확보함
                                            //

        System.out.printf("%-5.2f\n", 1.425); //2자리까지 표현하고 뒤에 1칸 만듬

입력메서드

입력 메서드는 변수의 입력을 리터럴이 아닌 키보드로 입력을 뜻함

Scanner 클래스

  • Sacnner 클래스를 생성함으로 입력메서드를 사용할 수 있음
  • next() 메서드는 공백으로 구분된 String을 입력
  • 3개의 입력값중 2개만 입력하게 되면 입력을대기하게 되는데 이것을 Blocking메서드라고 함
    <-> non - blocking 메서드
  • nextInt() Integer타입의 값을 입력받는 메서드(int외에도 다른자료형으로 활용가능)
  • nextLint() \n으로 구분되는 String을 입력받음, \n은 키보드에서는 엔터를 의미함
        System.out.println("Input methods.");
        Scanner scanner = new Scanner(System.in); // System.in은 키보드 입력을 뜻함
        //자동 import되네오

//        String s = scanner.next(); // 공백으로 구분된 String을 입력 받는다. String
//        System.out.println(s);

//        // this is string을 입력하면 공백으로 3개의 다른 입력으로 인식함
//        System.out.println(scanner.next()); //"this"
//        System.out.println(scanner.next()); //"is"
//        System.out.println(scanner.next()); //"string"

        // this is 만 입력하면 "this" "is" 출력되고 기다림 그다음 string입력하면 "string"출력됨

        //next() 메소드는 입력이 있을 때까지 기다립니다.
        //Blocking 메소드라고 부른다(<-> non-blocking 메소드 - 기다리지 않고 바로넘어가는애)

        //공백으로 구분되는 정수 입력
//        System.out.println(scanner.nextInt());
//        System.out.println(scanner.nextInt());
//        System.out.println(scanner.nextInt());
//        System.out.println(scanner.nextInt());

        // 정수 4개를 입력 받는다. 다른 자료형 입력 받으면 에러발생

        System.out.println(scanner.nextDouble());
        System.out.println(scanner.nextDouble());
        System.out.println(scanner.nextDouble());


        // \n으로 구분이 되는 String을 입력 받는다.
        // \n은 키보드에서는 엔터를 의미함

//        System.out.println(scanner.nextLine());
//        System.out.println(scanner.nextLine());
//        System.out.println(scanner.nextLine());

'Java' 카테고리의 다른 글

[Java] 2_예제1  (0) 2020.07.29
[Java]2_4_연산자 (Operators)  (0) 2020.07.29
[Java] 2_2_자료형(Data Type)  (0) 2020.07.28
[Java] 2_1_변수  (0) 2020.07.28
[Java] 자바 기본 클래스 - 예제  (0) 2020.07.22

+ Recent posts