🧡 Product 객체
package lab1;
public class Product {
private String name;
private int unitPrice;
private int amount;
public Product(String name, int unitPrice, int amount) {
this.name = name;
this.unitPrice = unitPrice;
this.amount = amount;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getUnitPrice() {
return unitPrice;
}
public void setUnitPrice(int unitPrice) {
this.unitPrice = unitPrice;
}
public int getAmount() {
return amount;
}
public void setAmount(int amount) {
this.amount = amount;
}
}
🧡 Main 클래스
1. 다음과 같이 메뉴 출력, [4] 종료 선택 시 프로그램 종료
2. Product 객체 저장할 수 있도록 ArrayList 생성
3. [1] 물건 추가 선택 시, 물건 정보(이름, 단가, 수량) 입력 받고, 입력받은 정보 ArrayList에 저장
4. [2] 예상 판매량 조회 시, ArrayList에 들어있는 전체 객체의 물건의 제품명, 단가, 수량 출력하고, 판매 시 총 매출을 구해 아래와 같이 출력
5. [3] 물건 수정 선택 시, 수정할 물건 이름 입력 후 현재 수량 출력, 수정할 수량 입력
package lab1;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scr = new Scanner(System.in);
// Product (제품 객체) 저장하는 ArrayList 생성
ArrayList<Product> productList = new ArrayList<>();
// 사용자가 메뉴 선택할 수 있도록 지시어 출력
while(true){
// [1] 물건추가 [2] 예상 판매량 조회 [3] 종료
System.out.println("[1] 물건추가 [2] 예상 판매량 조회 [3] 물건수량수정 [4] 종료 >>");
// 사용자 메뉴 입력 받기
int menu = scr.nextInt();
// 사용자 입력이 1일 경우 처리
if(menu==1) {
System.out.print("물건 이름: ");
String name = scr.next();
System.out.print("단가: ");
int unitPrice = scr.nextInt();
System.out.print("수량: ");
int amount = scr.nextInt();
// Product 객체 생성을 하고 prodList에 추가
Product p = new Product(name, unitPrice, amount);
productList.add(p);
}
// 사용자 입력이 2일 경우 처리 => 구매요청한 제품 리스트 출력 후 예상 판매량 계산
if(menu==2) {
int totalPrice = 0;
// prodList의 자료들을 모두 출력
System.out.println("제품명\t 단가\t 수량");
for(Product p: productList) {
System.out.print(p.getName() + "\t");
System.out.print(p.getUnitPrice() + "\t");
System.out.print(p.getAmount() + "\n");
// 예상 판매량 누적
totalPrice += p.getUnitPrice() * p.getAmount();
}
System.out.println("판매시 매출: " + totalPrice);
}
// 사용자 입력이 3일 경우 처리: 물건 이름:
// 해당 물건 이름이 리스트에 있을 경우 -> 물건 이름, 수량 출력 출력후
// 수정할 수량 입력 받아서 해당 물건의 수량 수정하기
if (menu == 3) {
System.out.print("물건 이름: ");
String nameToModify = scr.next();
// 등록된 물건 리스트를 순회하며 해당 물건을 찾음
boolean found = false;
for (Product p : productList) {
if (p.getName().equals(nameToModify)) {
found = true;
System.out.println("현재 " + p.getName() + "의 수량: " + p.getAmount());
// 수정할 수량 입력 받기
System.out.print("수정할 수량 입력: ");
int newAmount = scr.nextInt();
// 물건의 수량 수정
p.setAmount(newAmount);
System.out.println(p.getName() + "의 수량이 수정되었습니다. 수정 후 수량: " + p.getAmount());
break; // 물건을 찾았으므로 반복문 종료
}
}
if (!found) {
System.out.println("해당 물건이 리스트에 없습니다.");
}
}
// 사용자 입력이 4일 경우 처리
if(menu==4) {
System.out.println("프로그램 종료");
break; // while문 탈출
}
}
}
}
🧡 결과
💙 for-each 문
주로 컬렉션(배열, 리스트, 집합 등) 내부의 요소를 반복적으로 처리하는 Java 프로그래밍에서 사용되는 반복문이다.
컬렉션을 순회하며 각 요소에 접근하는 것을 단순화하고 코드르 간결하게 작성할 수 있도록 도와준다.
for-each 문의 기본 구조는 다음과 같다.
for (타입 변수 : 컬렉션) {
// 요소를 처리하는 코드
}
1. 타입: 컬렉션에 있는 요소의 타입을 나타낸다. 이 타입은 컬렉션의 요소 타입과 일치해야 한다.
2. 변수: 현재 순회 중인 요소를 나타내는 변수이다. 각 반복마다 컬렉션의 다음 요소가 이 변수에 할당된다.
3. 컬렉션: 순회할 컬렉션을 나타낸다. 배열, 리스트, 집합 등의 자료 구조가 될 수 있다.
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println(num);
}
위 코드는 배열 numbers의 각 요소를 반복하면서 각 요소를 출력한다.
1
2
3
4
5
'학교 > JAVA' 카테고리의 다른 글
모바일 웹 서비스를 위한 JSP 웹 프로그래밍 연습문제_05장 서블릿 (0) | 2023.12.13 |
---|---|
컬렉션 연습문제 (Student, Main) (0) | 2023.10.27 |
컬렉션(ArrayList<String>, Iterator) 연습문제 (ArrayEx02) (0) | 2023.10.26 |
컬렉션(ArrayList<String>) 연습문제 (ArrayEx01) (0) | 2023.10.26 |
객체와 객체배열 연습문제 (Phone, PhoneManager) (0) | 2023.10.26 |