Java
Java 상품 정보 입력
승모근뭉치
2023. 1. 26. 12:21
프로젝트 내 src 내 javabasic 패키지 내 Shop.java
package javabasic;
//상품명, 수량, 단가 멤버 변수
public class Shop {
private String sang;
private int su;
private int dan;
// setter method
public void setSang(String sang) {
this.sang = sang;
}
public void setSu(int su) {
this.su = su;
}
public void setDan(int dan) {
this.dan = dan;
}
// getter method
public String getSang() {
return this.sang;
}
public int getSu() {
return this.su;
}
public int getDan() {
return this.dan;
}
// 수량*단가
public int getTotal() {
return su * dan;
}
}
프로젝트 내 src 내 javabasic 패키지 내 Ex7Object.java
package javabasic;
import java.util.Scanner;
public class Ex7Object {
public static void main(String[] args) {
// TODO Auto-generated method stub
// Shop 에 저장할 갯수를 입력후 할당
// 상품정보를 키보드로 입력하여 출력하기
Scanner sc = new Scanner(System.in);
Shop[] shop;
int cnt;
System.out.println("저장할 상품의 갯수를 입력하세요");
cnt = Integer.parseInt(sc.nextLine());
// cnt=sc.nextLine();
// 메모리할당
shop = new Shop[cnt];
// 데이타 입력
for (int i = 0; i < cnt; i = i + 1) {
// 생성
shop[i] = new Shop();
System.out.println("상품명");
// 버퍼의 엔터 처리
// sc.nextLine();
String sang = sc.nextLine();
shop[i].setSang(sang);
System.out.println("수량과 단가를 입력하세요");
// int su=sc.nextInt();
int su = Integer.parseInt(sc.nextLine());
// int dan=sc.nextInt();
int dan = Integer.parseInt(sc.nextLine());
shop[i].setSu(su);
shop[i].setDan(dan);
System.out.println();
}
// 출력
System.out.println("번호\t상품명\t수량\t단가\t총금액");
for (int i = 0; i < shop.length; i = i + 1) {
System.out.println(i + 1 + "\t" + shop[i].getSang() + "\t" + shop[i].getSu() + "\t" + shop[i].getDan()
+ "\t" + shop[i].getTotal());
}
}
}
Ex7Object.java 에서 수량과 단가를 입력하세요 부분에서는
수량과 단가를 구분하는 구분자를 스페이스바나 다른 것으로 주지 않는다. 구분자는 엔터로 한다. 아니면 오류가 난다.
수량과 단가 사이 구분자를 스페이스바로 주었을 때는 다음과 같은 오류가 난다.
저장할 상품의 갯수를 입력하세요
3
상품명
인형
수량과 단가를 입력하세요
2 1000
Exception in thread "main" java.lang.NumberFormatException: For input string: "2 1000"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at javabasic.Ex7Object.main(Ex7Object.java:33)
구분자를 엔터로 쳤을 때는 다음과 같은 결과가 나온다.
저장할 상품의 갯수를 입력하세요
3
상품명
인형
수량과 단가를 입력하세요
2
1000
상품명
구두
수량과 단가를 입력하세요
1
1000000
상품명
건강식품
수량과 단가를 입력하세요
100
20000
번호 상품명 수량 단가 총금액
1 인형 2 1000 2000
2 구두 1 1000000 1000000
3 건강식품 100 20000 2000000