본문 바로가기
솔루션모음/파워자바 중간점검 Exercise Lab

[파워자바] 10장 중간점검문제 Exercise Lab Exercise 솔루션 답지

by 이얏호이야호 2023. 9. 16.

중간점검문제

p.230

1. int[] array = new int[100];

2. 0에서 9 사이의 정수

3. 예외(오류)가 발생한다.

4. double[] array = { 1.2, 3.1, 6.7 };

5.

for(i=0;i<array.length;i++){

array[i] = 2 * array[i];

}

6.

Scanner scan=new Scanner(System.in);

System.out.println(“배열의 크기: ”);

int size = scan.nextInt();

double[] array = new double[size];

 

7. for-each와 전통적인 for 루프를 비교하라.

for-each루프는 배열의 크기에 신경쓰지 않아도 되고 인덱스 변수를 생성할 필요없이 배열의 첫 번째 원소부터 마지막 원소의 값을 꺼내서 처리하는 경우에 사용한다. 하지만 역순으로 배열 원소를 처리하거나 일부 원소만 처리하는 경우는 for루프를 사용한다.

전통적인 for루프를 사용하면 배열의 원소를 변경할 수 있지만 for-each보다 불편할 수 있다. 뒤에서 학습하는 컬렉션에서는 for-each구조가 무척 편리하다.

 

8. 배열의 크기가 동일하다고 가정하자.

for(i=0;i<length;i++){

array2[i] = array1[i];

}

 

9. 배열의 참조값이 전달된다.

10. 배열 원소는 값이 전달되고 배열은 참조가 전달된다.

 

p.232

1.

BankAccount[] bank = new BankAccount[3];

for(int i =0; i < bank.lengh; i++)

bank[i] = new BankAccount();

2. 참조값이 전달된다.

 

p.234

1. int[][] library = new int[8][100];

2. 2차원 배열 객체를 가리키는 참조값이 전달된다.

 
Lab

1.

class Employee {

String name; // 직원의 이름

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

public int getSalary() {

return salary;

}

public void setSalary(int salary) {

this.salary = salary;

}

public String getPhone() {

return phone;

}

public void setPhone(String phone) {

this.phone = phone;

}

String address; // 주소

int salary; // 연봉

String phone; // 전화 번호

}

2.

 

import java.util.Scanner;

 

class Employee {

String name; // 직원의 이름

 

public String getName() {

return name;

}

 

public void setName(String name) {

this.name = name;

}

 

public String getAddress() {

return address;

}

 

public void setAddress(String address) {

this.address = address;

}

 

public int getSalary() {

return salary;

}

 

public void setSalary(int salary) {

this.salary = salary;

}

 

public String getPhone() {

return phone;

}

 

public void setPhone(String phone) {

this.phone = phone;

}

 

String address; // 주소

int salary; // 연봉

String phone; // 전화 번호

}

 

public class EmployeeTest {

public static void main(String args[]) {

Scanner scan = new Scanner(System.in);

// 크기가 3Employee의 배열 employees을 생성한다.

Employee[] employees = new Employee[3];

// 3명의 사원 정보를 받아서 각각 Employee 객체를 생성한 후에 배열에 추가하여 본다. 반복 루프를 사용한다.

for (int i = 0; i < employees.length; i++)

employees[i] = new Employee();

for (int i = 0; i < employees.length; i++) {

System.out.println("이름: ");

employees[i].name = scan.next();

System.out.println("주소: ");

employees[i].address = scan.next();

}

// employees 배열에 저장된 모든 데이터를 출력한다. 반복 루프를 사용한다.

for (int i = 0; i < employees.length; i++) {

System.out.println("이름: " + employees[i].name);

System.out.println("주소: " + employees[i].address);

}

}

}

 
 
Exercise

1.

(1) int[] studentNumbers = new int[30];

(2) double[] values = {1.2, 3.3, 6.7};

 

2.

(1) int[] numbers = new int[100];

(2) double[] rainfalls = new double[100];

 

3.

(1) 0부터 4까지

(2) 실시간 오류 발생

 

4.

for(int i = 0; i < values.length; i++){

values[i] = 0;

 

5.

int[] a = {1, 2, 3, 4, 5};

int[] b = new int[5];

for(int i = 0; i < a.length; i++)

b[i] = a[i];

 

 

6.

String[] employees = new String[10];

String name = "홍길동";

employees[0] = name;

name = null;

 

배열의 원소 중에서 0번째를 제외하고 나머지 원소들은 초기화가 안 되었다. 따라서 9개의 null 참조가 배열 employees[] 안에 존재한다.

 

 

 
 
 
 
 
 
 

 

댓글