Transcript 실습 2

7장 배열 ②

목차

가변 길이 매개변수 리스트

 가변 길이 매개변수 리스트 사용하기 

이차원 배열

 마술 사각형 

ArrayList 클래스

 ArrayList 클래스를 사용한 쇼핑 카트

가변 길이 매개변수 리스트 사용하기

 Parameter를 수정해보자.

 매개변수 1개(13)로 average()를 호출하고 결과를 출력 해보자.

  매개변수 없이 average()를 호출하고 결과를 출력해보자.

상호작용하는 부분을 추가해보자.

 사용자로부터 양의 정수 20개를 입력 받는다.

- loop문을 사용하여 입력 받은 정수를 배열에 저장한다.

- 입력 받은 수가 음수일 때까지 입력 받는다.

 (음수는 저장 X) minimum()을 추가한다.

 정수 리스트를 매개변수로 받아, 최소값을 반환한다.

가변 길이 매개변수 리스트 사용하기 - Parameters.java

//******************************************************* // Parameters.java

// 가변길이 매개변수 리스트의 개념을 설명.

//******************************************************* import java.util.Scanner; public class Parameters { //-------------------------------------------------- // 다른 매개변수로 average(), minimum()을 호출한다.

//-------------------------------------------------- public static void main(String[] args) { double mean1, mean2; mean1 = average (42, 69, 37); mean2 = average (35, 43, 93, 23, 40, 21,75); System.out.println("mean1 = " + mean1); System.out.println("mean2 = " + mean2); }

가변 길이 매개변수 리스트 사용하기 - Parameters.java

} //-------------------------------------------------- // 매개변수의 평균을 반환한다.

//-------------------------------------------------- public static double average(int ... list) { double result = 0.0; if (list.length != 0) { int sum = 0; for (int num: list ) sum += num; result = (double)sum/ list.length; } return result; }

마술 사각형

  

Square.java를 주석에 따라 완성해보자.

SquareTest.java를 주석에 따라 완성해보자.

실행해보고, 그 결과를 살펴보자.

마술 사각형 (Cont.) Square.java

//******************************************************* // Square.java

// // 사각형 행렬에 대한 정보를 입력받아 사각형을 생성하고, // 행과 열, 대각선의 합을 계산하고, 마술 여부를 확인한다.

//******************************************************* import java.util.Scanner; public class Square { int[][] square; //-------------------------------------------------- // 주어진 크기로 사각형을 생성한다.

//-------------------------------------------------- public Square(int size) { } //-------------------------------------------------- // 주어진 행의 합을 반환한다.

//-------------------------------------------------- public int sumRow(int row) { }

마술 사각형 (Cont.) Square.java

//-------------------------------------------------- // 주어진 열의 합을 반환한다.

//-------------------------------------------------- public int sumCol(int col) { } //-------------------------------------------------- // 주 대각선의 합을 반환한다.

//-------------------------------------------------- public int sumMainDiag() { } //-------------------------------------------------- // 다른(역) 대각선의 합을 반환한다.

//-------------------------------------------------- public int sumOtherDiag() { }

마술 사각형 (Cont.) Square.java

} //-------------------------------------------------- // 마술 사각형 여부를 반환한다.

// true - 모든 행,열,대각선의 합이 같은 경우 // false - 그렇지 않은 경우 //-------------------------------------------------- public boolean magic() { } //-------------------------------------------------- // 기본적인 입력을 받아 사각형의 정보를 읽는다.

//-------------------------------------------------- public void readSquare(Scanner scan) { } //-------------------------------------------------- // 깔금한 형식으로 사각형 정보를 출력한다.

//-------------------------------------------------- public void printSquare() { }

ArrayList 클래스를 사용한 쇼핑 카트

 Shop.java를 완성해보자.

   instance 변수 cart를 추가한다.

주석에 따라 프로그램을 완성해보자.

  loop을 사용한다.

출력할 때 default toString()이 불려진다.

출력문을 수정해보자.

  카트에서 각 item을 가져와 출력한다.

카트에 있는 item의 총 가격을 계산하여 출력한다.

- getPrice(), getQuantity()를 사용 - 총 가격은 loop문을 다 수행하고 난 후 출력한다.

ArrayList 클래스를 사용한 쇼핑 카트 Shop.java

//******************************************************* // Shop.java

// Item 클래스를 상요해 item을 생성하고, 쇼핑카트에 추가한다.

// 쇼핑 카트를 ArrayList에 저장한다.

//******************************************************* import java.util.ArrayList; import java.util.Scanner; public class Shop { public static void main(String[] args) { ArrayList cart = new ArrayList(); Item item; String itemName; double itemPrice; int quantity; Scanner scan = new Scanner(System.in); String keepShopping = "y";

ArrayList 클래스를 사용한 쇼핑 카트 Shop.java

} } do { System.out.print ("Enter the name of the item : "); itemName = scan.nextLine(); System.out.print ("Enter the unit price : "); itemPrice = scan.nextDouble(); System.out.print ("Enter the quantity : "); quantity = scan.nextInt(); // 새로운 item을 생성하고, cart에 추가하기 // cart 객체의 내용을 println을 사용하여 출력하기.

} while (keepShopping.equals("y"));