오늘은 개발과 커밋 자세히보기

프로그래밍 공부/Java

[ Java 프로그래밍 ] 공부 정리 - 3장 본문 퀴즈 및 연습문제

호크테마 2023. 4. 30. 14:44

* 공부 정리일자 (2022년 8~12월) 
- 책 : 명품 자바 에센셜 
- 개인적으로 공부 및 복습하면서 정리한 내용입니다. (사진 제외) 


chapter 03 반복문과 배열 그리고 예외 처리 (책 93p)
3.1 반복문 (책 93p) - for 문, while 문, do-while 문
3.2 continue 문과 break 문 (책 97p)
 1) 1에서 19까지 정수에 대해 3의 배수가 아닌 수를 출력한다. (1 2 4 5 7 8 10 11 13 14 16 17 19)

3.3 자바의 배열 (책 101p)
 1) char myChar[] = new char [10]; // 또는 char [] mychar = new char [10];
 2) 코드 작성 생략 

3.4 다차원 배열 (책 110p)
3.5 메소드의 배열 리턴 (책 112p)
 1) (3) int a[] = new int[5]; 
 2) char [] / return c;
3.6 자바의 예외 처리 (책 114p)
 1) 배열의 범위를 벗어난 접근 시 발생 
 2) null 레퍼런스를 참조할 때 발생 


3장 연습문제  이론문제
1. (1) 0에서 10까지(혹은 2에서 10까지) 짝수만 더하는 프로그램이며, 실행 결과는 30
(2)

int i=0, sum=0; while(true) {
i = i + 2; sum += i;
if(i == 10) break; }
System.out.println(sum);
int i=0, sum=0; do {
i = i + 1;
if(i%2 = 1) continue; sum += i;
} while(i<10);
System.out.println(sum);

2. (1) 12.2
(2) for(int i=0; i<d.length; i++)

(3) while 문으로 바꾸어 작성하면 다음과 같다.
double sum = 0.0;

double d[] = {1.0, 2.3, 3.4, 5.5 };
int i=0;
while(i<d.length) { sum += d[i];
i++; }
System.out.println(sum);
(4) do-while 문으로 바꾸어 작성하면 다음과 같다.
double sum = 0.0;

double d[] = {1.0, 2.3, 3.4, 5.5 };
int i=0;
do {
sum += d[i]; i++;
} while(i<d.length); System.out.println(sum);
(5) for-each 문으로 바꾸어 작성하면 다음과 같다.
double sum = 0.0;
double d[] = {1.0, 2.3, 3.4, 5.5 }; for(double x : d) {
sum += x; }
System.out.println(sum);

 

3. (1) char c[] = new char [10];
(2) int n[] = {0,1,2,3,4,5};
(3) char day[] = {'', '', '', '', '', '', ''};
(4) double d[][] = new double[5][4];
(5) int val[][] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};

4. myArray 인덱스 범위 0 ~ myArray.length-1이므로 다음 보기는 오류이다.
 myArray[myArray.length] = 100;

5. 다음 2차원 배열 선언문에서 문법적으로 잘못된 것은 다음 보기이다
 int [3][2] n = { {1,2}, {3,4}, {4,5} }; // int [3][2] n에서 3,2를 사용하면 안 됨

6. boolean [] b = { true, false, true, true };
for( boolean boo : b )
System.out.println(boo)

7. (1) 빈칸을 채우면 다음과 같다.

double [] allocArray() {
Scanner scanner = new Scanner(System.in);
double [] n = new double [scanner.nextInt()]; // 입력된 정수 크기의 배열 생성
return n; // 배열 리턴
}

(2) double d [] = allocArray();

8. (1) 코드를 실행한 결과 출력되는 내용은 다음과 같다.
 124
 계산을 끝냅니다.

(2)
23.5를 정수로 변환할 수 없습니다.
계산을 끝냅니다.