7장 배열 ②
목차 가변 길이 매개변수 리스트 이차원 배열 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 <Item> 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"));