728x90

 

 

빈공간 sc입력후 ctrl+space치면 자동 스캐너 자동 임포트 및 스니펫 작동

 

sc.next() : 공백 전까지 입력을 받음

sc.nextLine() : 한 줄 전체를 입력 받음

sc.next + 데이터타입() : 해당 데이터타입만 입력받음

ex) .nextInt()  .nextDouble()  .nextfloat()

 

 

 

 

 

728x90
반응형
728x90

 

 

int를 double로 교체 후 에러해결

 

전체 자릿수에서 칸이 남을 시, 공백출력

 

728x90
반응형
728x90

 

 

1.형식화된 출력 - printf()

println() 메소드의 단점 : 출력형식 지정불가

1)실수의 자리수 조절불가 - 소수점 n자리만 출력하려면?

       Systme.out.println(10.0/3);    // 3.33333333…

 

정수 나누기 정수는 값이 소수점이 나와야하지만 정수로 출력함

하나를 실수로 바꿔야 소수점까지 제대로 출력됨

3.33333333...값을 제대로 얻으려면 10/3 아닌 10.0/3 해야한다는 것만 일단 기억해두자

 

2)10진수로만 출력된다 - 8진수, 16진수로 출력할려면?

        System.out.println(0x1A); // 26(10진수)

 

printf() 출력형식 지정가능

       System.out.printf("%.2f", 10.0/3);    // 3.33

       System.out.printf("%d", 0x1A);    // 26   // %d : 10진수

       System.out.printf("%x", 0x1A);    // 1A   // %X : 16진수

 

 

 

2.printf() 메소드의 지시자(1/3)

<자주쓰는 지시자>

*이외에 다른 지시자들을 알고싶다면, JavaAPI문서 - Formatter 검색

 

 

2.printf() 메소드의 지시자(2/3)

1)정수를 10진수, 8진수, 16진수로 출력

System.out.printf("%d", 15);  // 15 10진수(decimal number)

System.out.printf("%o", 15);  // 17 8진수(octal number) - 일칠이라고 읽는다.

       8진수에서는 10 1 아니라 8이기 때문

System.out.printf("%x", 15);  //  f  16진수(hexadecimal)

System.out.printf("%x", 15);  //  f  16진수(hexadecimal)

System.out.printf("%s", Integer.toBinaryString(15));  // 1111 2진수 - 10진수15 2진수 1111

       숫자15 위의 메소드에 넣으면 '문자열1111' 얻는다

       그래서 %s 사용하는

       2진수로 출력하는 지시자없음

       정수를 2진수로 변환해주는 toBinaryString() 메소드를 사용해야함

 

2) 8진수와 16진수에 접두사 붙이기

8진수 접두사 : 0

16진수 접두사 : 0x

 

값이 출력될 때는 접두사가 안붙음. 접두사까지 출력하고 싶다면 지시자 앞에 #추가

       System.out.printf("%#o", 15); // 017

       System.out.printf("%#x", 15); // 0xf

       System.out.printf("%#x", 15); // 0XF // 지시자를 대문자로 쓰면, 접두사X F 같이 대문자로 출력됨

 

3)실수 출력을 위한 지시자 %f - 지수형식(%e), 실수 출력의 간략한 형식(%g)

float f = 123.4567890f;

System.out.printf("%f", f); // 123.456787 소수점아래6자리

              마지막숫자9 아니고 7인이유는 float 정밀도가 7자리까지만 정확하기 때문

System.out.printf("%e", f); // 1.234568e+02 지수형식

             같은 수인데 f출력은 456'7'이고 e 456'8'

             실제 저장된 값은 같으나 마지막값을 반올림하여 보여주기때문

System.out.printf("%g", 123.456789); // 123.457 // 소수점포함 7자리로 간략히 보여줌

             마지막수가 6이어야하나 g 반올림해서 7 출력한 . 지시자f처럼 출력

System.out.printf("%g", 0.00000001); // 1.00000e-8

 

실수형태는 %f 많이쓰면 되고, 숫자에 0 많이 들어가면 %e 사용하면 된다

 

실습

 

 

 

2.printf() 메소드의 지시자(3/3)

 

System.out.printf("[%5d]%n", 10);  // [공백공백공백10] 다섯자리

System.out.printf("[%-5d]%n", 10); // [10공백공백공백] - 왼쪽정렬

System.outprintf("[%05d]%n", 10); // [00010] 공백자리를 대체하는 문자 0
 

 

소수점 포함 14자리. 소수점도 하나의 데이로써 메모리 공간을 차지하기 때문

지정된 자릿수보다 출력할 값으 자릿수가 적다면, 소수점 아래는 빈자리를 0으로 채우고 소수점 위는 공백으로 채움

 

 

 

 

 

 

 

728x90
반응형

+ Recent posts