println() 의 사용
println() 의 경우 ()안의 매개 변수 값으로 숫자와 문자열을 모두 가질수 있다 (boolean 도 가능, true false 는 "" 없이 입력됨)
print()의 경우와 동일하며 ln 을 붙이는 것으로 줄바꿈을 추가명령한 것 뿐이다
system.out.println(10); // 10 숫자
system.out.println(true); // true - ()안에 따옴표가 필요없다 = 문자열이 아닌 boolean 타입이다
system.out.println("INFP"); // INFP - 문자열
char[] toc = {'t', 'o', 'k','k','i','c'};
system.out.println(toc); // tokkic - 배열 내부 요소도 출력
system.out.println("고구마가 3개"); // 고구마가 3개 - 문자열
printf() 의 사용
printf()는 print() 와 달리 "" 를 사용해서 문자열의 형태로만 입력가능하다
문자열이지만 내부의 입력 변수는 다양한 데이터 타입으로 받을 수 있다는 차이가 있다
사용 목적에 맞게 변수의 입력 인자를 알맞게 넣어주어야만 한다
변수가 입력 인자보다 적어도 에러는 없지만 변수가 많은데 입력 인자가 적으면 에러가 난다
// 입력 변수 수가 입력 인자 수 보다 많으면 변수에 할당할 값이 없어 에러가 뜬다
System.out.printf("%d", 3); // 3 / 정상 작동
System.out.printf("%d", 3, k); // 3 / 정상 작동
System.out.printf("%d %c", 3); // 에러!!!
System.out.printf("%d %c", 3, k); // 3 k / 정상 작동
위에서 사용한 %d 처럼 변수로서 작용하는 것을 서식 지정자(지시자)라고 하며
2진법, 10진법 등의 형식 뿐 아니라 숫자, 문자, boolean 등등 그리고
변수로 사용할 공간의 크기 지정, +-추가 및 공간에서의 왼쪽 오른쪽 정렬 외에도 다양한 방법으로 사용가능하다
서식지정자의 종류
서식 지정자 | 출력 데이터 형태 |
---|---|
%c | 하나의 문자 |
%s | 문자열 |
%d | 부호 있는 10진 정수 |
%i | 부호 있는 10진 정수 (%d와 동일) |
%f | 고정 소수점으로 표현한 실수 (소수점 이하 6자리까지 표현) |
%o | 부호 없는 8진 정수 |
%u | 부호 없는 10진 정수 |
%x | 부호 없는 16진 정수 (소문자 사용) |
%X | 부호 없는 16진 정수 (대문자 사용) |
%e | 부동 소수점으로 표현한 실수 (e-표기법) |
%E | 부동 소수점으로 표현한 실수 (E-표기법) |
%g | 값에 따라 %f나 %e를 사용함. |
%G | 값에 따라 %f나 %E를 사용함. |
%% | 퍼센트(%) 기호 출력 |
출력 필드(변수)의 폭 설정 = 변수로 사용할 공간의 크기 지정
서식 지정자의 % 와 타입을 나타내는 영문자 사이에 숫자를 통해서 출력 공간의 크기를 정할수있다
내부 공간에 공백이 있을 시 변수는 오른쪽 정렬이 기본이고 숫자앞에 - 기호를 붙이면 왼쪽 정렬이다
숫자 앞에 +기호를 붙이면 오른쪽 정렬에 양수면 + , 음수면 - 를 붙여서 출력한다
숫자를 소수로 입력 시, 소수부분의 숫자는 출력되는 소숫점 자릿수를 의미한다
출처 : http://www.tcpschool.com/c/c_intro_printf
printf(" %%d를 사용한 결과 : |%d|\n", 123);
printf(" %%7d를 사용한 결과 : |%7d|\n", 123);
printf(" %%+7d를 사용한 결과 : |%+7d|\n", 123);
printf(" %%-7d를 사용한 결과 : |%-7d|\n\n", 123);
printf(" %%f를 사용한 결과 : |%f|\n", 1.23);
printf(" %%.1f를 사용한 결과 : |%.1f|\n", 1.23);
printf(" %%7.2f를 사용한 결과 : |%7.2f|\n", 1.23);
printf("%%+7.2f를 사용한 결과 : |%+7.2f|\n", 1.23);
printf("%%-7.2f를 사용한 결과 : |%-7.2f|\n\n", 1.23);
'개발 노트 > 기초 지식' 카테고리의 다른 글
[java] 메모리 영역 (0) | 2022.04.30 |
---|---|
[java] 바인딩, 정적 메모리 할당, 동적 메모리 할당 (0) | 2022.04.30 |
[java] final (0) | 2022.04.25 |
[java] abstract (0) | 2022.04.25 |
[java] overload, override (0) | 2022.04.25 |
댓글