형식화된 출력 – printf( )
- println()의 단점: 출력형식 지정불가
1) 실수의 자리수 조절불가 – 소수점 n자리만 출력하려면?
System.out.println(10/3) // 3 -> 정수 / 정수 -> 정수
System.out.println(10/0.3); //3.33333333335
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 -> 10진수
System.out.printf(“%x”, 0x1A); // 1A -> 16진수
“% “ -> 지시자(값을 어떻게 출력할지 printf 메소드에게 지시해주기 때문)
지시자 | 설명 | |
%b | 불리언(Boolean)형식으로 출력 | |
정수 | %d | 10진(decimal)정수의 형식으로 출력 |
%o | 8진(octal)정수의 형식으로 출력 | |
%x, %X | 16진(hexa-decimal)정수의 형식으로 출력 | |
실수 | %f | 부동 소수점(floating-point)의 형식으로 출력 |
%e, %E | 지수(exponent)표현식의 형식으로 출력 | |
문자 | %c | 문자(character)로 출력 |
%s | 문자열(string)으로 출력 |
System.our.printf(“age:%d year:%d\n”, 14, 2017); -> “age:14 year:2017”이 화면에 출력됨(\n으로 인해 줄바꿈)
\n == %n -> 가능하면 %n으로!
정수를 10진수, 8진수, 16진수로 출력
System.out.printf(“%d”, 15); // 15 -> 10진수
System.out.printf(“%o” 15); // 17 -> 8진수
System.out.prinf(“%x”, 15); // f -> 16진수
System.out.printf(“%s”,, Integer.toBinaryString(15)); // 1111 2진수
8진수와 16진수에 접두사 붙이기
System.out.printf(“%#o”, 15); // 017
System.out.printf(“%#x”, 15); // 0xf
System.out.printf(“%#X”, 15); // 0XF
실수 출력을 위한 지시자 %f – 지수형식(%e), 간략한 형식(%g)
float f = 123.456789f;
System.out.printf(“%f”, f); // 123.456787 -> 소수점이래 6자리민 출력(float 타입의 정밀도가 7이어서)
System.out.printf(“%e”, f); // 1.234568e+02 -> 지수형식
System.out.printf(“%g”, f); // 123.457 -> 간략 형식
double f = 123.456789;
System.out.printf(“%f”, f); // 123.456789 -> double타입의 정밀도는 15자리이기 때문에 9자리 가능!
System.out.printf(“[%5d]%n”, 10); // [ 10] -> 들어갈 자리수는 5자리인데 입력할 자리는 두 개(오른쪽 정렬)
System.out.printf(“[%-5d]%n”, 10); // [10 ] -> (왼쪽 정렬)
System.out.printf(“[%05d]%n”, 10); // [00010]
System.out.printf(“[%5d]%n”, 1234567); // [1234567] ->들어갈 자리수보다 입력할 자리수가 많으면 입력할 자리수만큼 출력!
%전체자리.소수점아래자리f
System.out.printf(“d=%14.10%n”, d); //전체 14자리 중 소수점 아래 10자리
String url = www.naver.com
System.out.printf(“[%s]%n”, url); // [www.naver.com]
System.out.printf(“[%20s]%n”, url); // [(7자리공백)www.naver.com] -> 소수점까지 포함해서
System.out.printf(“[%-20s]%n”, url); // [www.naver.com ]
System.out.printf(“[%.8s]%n”, url); // [www.nave] -> 8자리까지만 부분 출력
화면에서 입력받기 - Scanner
Scanner -> 화면으로부터 데이터를 입력 받는 기능을 제공하는 클래스
Scanner를 사용하려면
1) import문 추가
import java.util.*;
2) Scanner 객체의 생성
Scanner scanner = new Scanner(System.in); -> System.in은 화면입력
3) Scanner객체를 사용
int num = scanner.nextInt( ); // 화면에서 입력 받은 정수를 num에 저장
String input = scanner.nextLine( ); // 화면에서 입력 받은 내용을 input에 저장 -> nextLine(한 행)
int num =Integer.parseInt(input); // 문자열(input)을 숫자(num)로 변환
=> 아래 두문장과 int num 문장은 같음
정수형의 오버플로우
오버플로우: 표현가능한 범위를 넘는 것 (ex 계수기)
최대값 + 1 -> 최소값 // 1111+1 -> 0000
최소값 -1 -> 최대값 // 0000-1 -> 1111
'멀티캠퍼스 풀스택 과정 > Java의 정석' 카테고리의 다른 글
자바의 정석1-6 반복문 (0) | 2021.12.29 |
---|---|
자바의정석1-5 조건문 (0) | 2021.12.29 |
자바의 정석1-4 타입 변환과 연산자(operator) (0) | 2021.12.28 |
자바의 정석1-2 변수, 기본형과 참조형 (0) | 2021.12.28 |
자바의 정석1-1 자바의 개념 (0) | 2021.12.28 |