All of My Records

[Java] 콘솔 출력, Output

by 캐떠린

콘솔 출력을 알아보기에 앞서 먼저 콘솔 입출력에 대해 알아보자.

 

콘솔 입출력, Console Input Output

  • 기본 입력 장치: 키보드
  • 기본 출력 장치: 모니터

 

콘솔 출력을 위해서 자바에서는 아래 3가지 메서드를 사용한다.

하나씩 살펴봐보자!

 

  1. System.out.println(값)
    • println 메서드
    • (print line)
    • 값을 줄단위로 출력한다. → 값을 출력한 뒤 엔터를 친다.
  2. System.out.print(값)
    • print 메서드
    • 값을 출력한다. → 그리고 아무것도 안 한다.(줄바꿈 X)
  3. System.out.printf(값)
    • printf 메서드
    • (print format)
    • 형식 문자를 제공한다.
      • %s: String
      • %d: Decimal(모든 정수) → byte, short, int, long
      • %f: Float(모든 실수) → float, double (※기본값으로 소수 이하 6자리까지 출력)
      • %c: Char
      • %b: Boolean
    • 편리함 + 가독성 有

 

printf 형식 문자의 확장 기능

1. %숫자s, %숫자d, %숫자f, %숫자c, %숫자b

  • 숫자가 데이터에 출력할 너비를 지정한다.
  • 탭문자와 유사한 역할
  • +(양수): 우측 정렬
  • -(음수): 좌측 정렬
int num = 123;

System.out.printf("[%d]\n", num);		
System.out.printf("[%10d]\n", num); //10칸을 확보하고, 그 안에서 데이터를 출력
System.out.printf("[%-10d]\n", num);
System.out.printf("[%3d]\n", 12345);
System.out.printf("[%10b]\n", true);
System.out.printf("[%10s]\n", "?");

 

2. %.숫자f

  • 소수점 이하 자릿수를 지정한다.
  • 실수에서만 사용 가능
  • 별도 지정 없이 %f형식으로 사용 시 소수 이하 6자리를 출력한다.
  • ※주의※ 케이스마다 반올림이 발생, 발생하지 않는 경우가 있으니 모든 경우를 외울 수 없으면 직접 입력해봐서 확인하면 된다.(숫자가 중요한 업무들이 있기 때문에 상황에 맞게 보고 사용할 것)
double num2 = 3.15;

System.out.printf("%f\n", num2);
System.out.printf("%.2f\n", num2); //반올림 됨.
System.out.printf("%.1f\n", num2); //반올림 됨.
System.out.printf("%.0f\n", num2); //반올림 됨.

 

3. %,d%,f

  • 천단위를 표기한다.
  • 숫자형에는 다 사용이 가능하다.
int price = 1234567;
System.out.printf("금액: %d원\n", price);
System.out.printf("금액: %,d원\n", price);

 

※ 위의 모든 경우를 동시에 사용 시, %,자리수,소수이하f 순서로 입력해야 컴퓨터가 이해한다.

double num3 = 1234567.89012345;
System.out.printf("[%,20.2f]\n",num3); //자리수 및 소수점까지 다 포함하여 20자리

//출력: [        1,234,567.89]

 

여러가지 출력문 예시

//성적표 출력하기
String name1 = "홍길동";
int kor1 = 100;
int eng1 = 90;
int math1 = 80;

String name2 = "아무개";
int kor2 = 85;
int eng2 = 77;
int math2 = 89;

System.out.println("====================================");
System.out.println("               성적표");
System.out.println("====================================");
System.out.println("[이름]\t[국어]\t[영어]\t[수학]");


System.out.print(name1);
System.out.print("\t");
System.out.print(kor1 + "\t");
System.out.print(eng1 + "\t");
System.out.print(math1 + "\r\n");

System.out.println(name2 + "\t" + kor2 + "\t" + eng2 + "\t" + math2);

 

//요구사항] "안녕하세요. 홍길동님" 문장을 출력하시오.
String name = "홍길동";

System.out.println("안녕하세요. " + name + "님");
System.out.printf("안녕하세요. %s님\n", name); //한번에 출력되는 모습이 println을 사용한 것에 비해 가독성 좋다.

//출력1: 안녕하세요. 홍길동님
//출력2: 안녕하세요. 홍길동님

 

System.out.printf("저는 %s입니다. 나이는 %d살이구요. 키는 %fcm입니다. 혈액형은 %c형입니다. %b\n", "홍길동", 20, 175.3, 'O', true);

//출력: 저는 홍길동입니다. 나이는 20살이구요. 키는 175.300000cm입니다. 혈액형은 O형입니다. true

 

System.out.println("=======================");
System.out.println("    음료 가격(단위:원)");
System.out.println("=======================");

System.out.printf("콜라:\t\t%,6d\n", 2500);
System.out.printf("사이다:\t\t%,6d\n", 3500);
System.out.printf("라테:\t\t%,6d\n", 500);
System.out.printf("아메리카노:\t%,6d\n", 15000); //가장 많은 자릿수에 맞춰서 간격 조절하면 우측정렬 되어 보기 편함!

 

*글 작성에 참고한 내용: 학원 쌤의 열정적인 수업

블로그의 정보

All of My Records

캐떠린

활동하기