# 명품 자바 에센셜 연습문제 2장(이론)

- Author: @baealex
- Published: 2018-05-09
- Updated: 2020-02-25
- Source: http://blex.me/@baealex/%EB%AA%85%ED%92%88-%EC%9E%90%EB%B0%94-%EC%97%90%EC%84%BC%EC%85%9C-%EC%97%B0%EC%8A%B5%EB%AC%B8%EC%A0%9C-2%EC%9E%A5%EC%9D%B4%EB%A1%A0
- Tags: 자바에센셜

---

<div class="txc-textbox" style="border-style: solid; border-width: 1px; border-color: rgb(254, 254, 184); background-color: rgb(254, 254, 184); padding: 10px;">
<p>문제와 해답은 직접 작성한 것으로 오타가 있을 수도 있으며 해답역시 틀린 부분이 있을 수 있습니다. 틀린 부분에 대한 지적은 적극 수용하도록 하겠습니다. 문제를 먼저 풀어보시고 참고용으로만
        봐주시길 바랍니다.<br/></p>
</div>

#### 연습문제 2장

1. 자바에서 클래스를 선언할 때 사용하는 키워드는? 
 <span style="color: rgb(255, 0, 0);">class</span>

2. 다음 중 식별자 사용이 잘못된 경우를 모두 골라라.

```java
int _i;
int %j;
char 안녕;
double 1var;
char student_ID;
```

<span style="color: rgb(255, 0, 0);">2행: '_</span> <span style="color: rgb(255, 0, 0);">'와 '$'를 제외한 특수문자는 사용할 수
 없다.</span> 
 <span style="color: rgb(255, 0, 0);">4행: 변수 이름에 숫자를 쓸 수 있으나 첫번째로 올 수 없다.</span>

3. 다음 각 항목이 나타내는 변수를 선언하라. 
 (1) int 형 변수 age <span style="color: rgb(255, 0, 0);">int age;</span> 
 (2) 0.25로
 값이 초기화된 float형 변수 f <span style="color: rgb(255, 0, 0);">float f = 0.25f;</span> 
 (3) age값과 f값을 더한 값으로 초기화된
 double형 변수 d <span style="color: rgb(255, 0, 0);">double d = age + f;</span> 
 (4) 문자 'a'로 초기화된 char형 변수 c <span style="color: rgb(255, 0, 0);">char c = 'a';</span> 
 (5) 자신의 이름으로 초기화된 문자열 변수 name <span style="color: rgb(255, 0, 0);">String
 name = "배르";</span>

4. 다음 수식의 결과 값과 타입은? 
 (1) 67 + 12.8 <span style="color: rgb(255, 0, 0);">79.8 double</span> 
 (2) 'c' +
 1 <span style="color: rgb(255, 0, 0);">100 in</span> <span style="color: rgb(255, 0, 0);">t</span> 
 (3) 10/3 <span style="color: rgb(255, 0, 0);">3 int</span> 
 (4) 10.0/3 <span style="color: rgb(255, 0, 0);">3.366....
 double</span> 
 (5) 10 == 9 <span style="color: rgb(255, 0, 0);">false boolean</span>

5. 다음 문장을 조건식으로 나타내라. 
 (1) a는 b보다 크거나 같다. <span style="color: rgb(255, 0, 0);">a &gt;= b</span> 
 (2) a는 b보다
 작고 c보다 크다. <span style="color: rgb(255, 0, 0);">a &lt; b &amp;&amp; a &gt; c</span> 
 (3) a더하기 3은 10과 같지 않다. <span style="color: rgb(255, 0, 0);">a + 3!= 10</span> 
 (4) a는 10보다 크거나 b와 같다. <span style="color: rgb(255, 0, 0);">a
 &gt; 10 || a == b</span>

6. 다음 리터럴 중에서 case 문의 값으로 사용할 수 없는 것은? 
 <span style="color: rgb(255, 0, 0);">④5.4</span>

7. 다음은 20과 30을 더해 50을 출력하려고 작성한 자바 프로그램이지만 오류가 있다.

```java
public class SampleProgram {
    int i;
    int j;
    i = 20;
    j = 30;
    System.out.println(i+j);
}
```

(1) 이 프로그램은 어떤 소스 파일 이름으로 저장되어야 하는가? <span style="color: rgb(255, 0, 0);">SampleProgram.java</span>

(2) 이 프로그램이 정상적인 결과를 내도록 수정하라.

```java
public class SampleProgram {
    public static void main(String[] args) {
        int i;
        int j;
        i = 20;
        j = 30;
        System.out.println(i+j);
    }
}
```

8. 다음 코드를 실행한 결과 출력되는 내용은?

```java
switch(option) {
    case 1: System.out.println("옵션1");
    case 2: System.out.println("옵션2");
    case 3: System.out.println("옵션3"); break;
    default: System.out.println("해당 없음");
}
```

(1) option이 1일때

<div class="txc-textbox" style="border-style: solid; border-width: 1px; border-color: rgb(0, 0, 0); background-color: rgb(0, 0, 0); padding: 10px;">
<p><span style="color: rgb(255, 255, 255);">옵션 1<br/></span><span style="color: rgb(255, 255, 255);">옵션 2<br/></span><span style="color: rgb(255, 255, 255);">옵션 3</span></p>
</div>

(2) option이 2일때

<div class="txc-textbox" style="border-style: solid; border-width: 1px; border-color: rgb(0, 0, 0); background-color: rgb(0, 0, 0); padding: 10px;">
<p><span style="color: rgb(255, 255, 255);">옵션 2<br/></span><span style="color: rgb(255, 255, 255);">옵션 3</span></p>
</div>

(3) option이 3일때

<div class="txc-textbox" style="border-style: solid; border-width: 1px; border-color: rgb(0, 0, 0); background-color: rgb(0, 0, 0); padding: 10px;">
<p><span style="color: rgb(255, 255, 255);">옵션 3</span></p>
</div>

(4) option이 4일때

<div class="txc-textbox" style="border-style: solid; border-width: 1px; border-color: rgb(0, 0, 0); background-color: rgb(0, 0, 0); padding: 10px;">
<p>
<font color="#ffffff">해당 없음</font>
</p>
</div>

<span style="color: rgb(255, 0, 0);">case문에 break가 없는 경우, break문을 만날 때 까지 내려갑니다.</span>

9. 다음 조건문을 삼항 조건 연산자를 이용하여 한줄로 작성하라.

```java
if(j%2 == 0) i = 10;
else i = 20;
```

<span style="color: rgb(255, 0, 0);">int i = (j%2 == 0)? 10: 20;</span>

10. 다음 if-else 문을 switch 문으로 바꾸어라.

```java
if(i == 1)
    System.out.println("1");
else if(i == 2)
    System.out.println("@");
else if(i == 3)
    System.out.println("#");
else
    System.out.println("*");
```

**<span style="color: rgb(255, 0, 0);">↓</span>**

```java
switch(i) {
    case 1 : System.out.println("1"); break;
    case 2 : System.out.println("@"); break;
    case 3 : System.out.println("#"); break;
    default : System.out.println("*");
}
```
