# 쇼핑 리스트
## 문제
printf() 메소드를 사용하여, 쇼핑 리스트를 깔끔하게 출력해봅시다.
## 출력 예
```
품명: 한우 꽃등심 가격: 112500
품명: 참치 선물팩 가격: 25500
품명: 맥스봉 한팩 가격: 5000
```
## printf() 메소드
printf() 메소드는 문자열을 형식에 맞게 출력이 가능합니다.
```
// %s: 문자열 출력
// %d: 십진수 출력
// %f: 실수 출력
// \n: 줄 내림
System.out.printf("%s %d %f\n", "문자열", 12345, 3.14);
```
출력시 좌우정렬하려면 형식의 길이를 잡으면 우측정렬, 길이를 잡은 상태에서 `-`부호를 넣으면 우측 정렬이 됩니다.
```
System.out.printf("%10s \n", "우측정렬");
System.out.printf("%-10s \n", "좌측정렬");
```
---
## 따라하기
### Step 1: 클래스 & 메인메소드
```
public class Main {
public static void main(String[] args) {
}
}
```
### Step 2: 변수 생성
```
public class Main {
public static void main(String[] args) {
String item1 = "한우 꽃등심";
String item2 = "참치 선물팩";
String item3 = "맥스봉 한팩";
int price1 = 112500;
int price2 = 22500;
int price3 = 5000;
}
}
```
### Step 3: 형식에 맞춘 출력
printf() 메소드는 문자열 출력형태를 지정할 수 있게 해줍니다. `%s`는 문자열을, `%d`는 십진수를 의미합니다.
```
System.out.printf("품명: %s 가격: %d\n", item1, price1);
```
위코드는 품명과 가격을 출력하는데 품명에 해당하는 %s는 name1의 값이 출력되고, %d는 price1이 출력됩니다.
### Step 4: 출력 길이 지정
출력 형식을 나타내는 %s, %d사이에 숫자를 넣어줌으로써 출력 길이를 지정 할 수 있습니다.
```
// %10s: 10칸의 문자열
// %8d: 8칸의 십진수
System.out.printf("품명: %10s 가격: %8d\n", item2, price2);
```
### Step 5: 좌우 정렬
출력길이 앞쪽으로 부호를 넣음으로써, 좌우 정렬이 가능합니다.
```
// %-10s: 왼쪽 정렬된 10칸의 문자열
// %+8d: 오른쪽 정렬된 8칸의 십진수
System.out.printf("품명: %-10s 가격: %8d\n", item3, price3);
```
### Step 6: 최종 출력
```
public class Main {
public static void main(String[] args) {
String item1 = "한우 꽃등심";
String item2 = "참치 선물팩";
String item3 = "맥스봉 한팩";
int price1 = 112500;
int price2 = 22500;
int price3 = 5000;
System.out.printf("품명: %-10s 가격: %8d\n", item1, price1);
System.out.printf("품명: %-10s 가격: %8d\n", item2, price2);
System.out.printf("품명: %-10s 가격: %8d\n", item3, price3);
}
}
```