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

프로그래밍 공부/Java

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

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

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


2강. 자바 기본 프로그래밍 (책 50p) 
2.1 자바 프로그램의 구조 (책 50p) - 클래스, 주석문, main() 메소드, 메소드, 메소드 호출, 변수 선언, 화면 출력 등  
 1) 자바에서 클래스 바깥에서 선언될 수 없는 것은? : 변수, 상수, 메소드, 전역변수 모두 불가 
 2) public static void main(String[] args) { }

2.2 식별자 (책 53p) - 클래스, 변수, 상수, 메소드 등에 붙이는 이름 
2.3 자바의 데이터 타입 (책 54p) - 데이터 타입 (기본 / 레퍼런스-배열, 클래스, 인터페이스), final (상수) 
 1) 자바의 기본 타입 : byte / 객체 타입 : byte, Double, String / bool은 자바의 타입이 아님.
 2) final int YEAR = 365; // 또는 static final int YEAR = 365; (상수 선언 final)
 3) “a”, 문자열은 기본 타입이 아니다. 

2.4 자바의 키 입력 (책 62p) - import java.util.Scanner; , Scanner a = new Scanner(System.in); 
2.5 연산자 (책 66p)  1) 11 / 2) 4 / 3) 4 
2.6 조건문 (책 76p) - if문, if ~ else if ~ else문, switch문, case 문 


2장 연습문제 – 이론문제
1. 자바에서 클래스를 선언할 때는 class 키워드 사용
2. int %j; // %는 특수문자로 사용할 수 없다.
   double 1var; // 첫 번째 문자로 숫자를 사용할 수 없다.

3. (1) int age;  /  (2) float f = 0.25F;  /  (3) double d = age + f; 또는 double d = (double)age + (double)f
   (4) char c = 'a';   /   (5) String name = "황기태";

4. (1) 67 + 12.8  ->    double 타입의 79.8  /  (2) 'c' + 1    ->    int 타입의 100
   (3) 10/3      ->    int 타입의 3  /  (4) 10.0/3    ->    double 타입의 3.333333333333333
   (5) 10==9     ->    boolean 타입의 false

5. (1) a는 b보다 크거나 같다.          ->   a >= b 또는 a > b || a == b
   (2) a는 b보다 작고 c보다 크다.     ->   a < b && a > c
   (3) a 더하기 3은 10과 같지 않다.  ->   (a + 3) != 10
   (4) a는 10보다 크거나 b와 같다.   ->   (a > 10) || (a == b)

6. ④ 5.4   // 현재 JDK8 기준으로 case 문의 값으로 사용할 수 있는 리터럴은 정수, 문자, 문자 열뿐이다. 
            // 그러므로 실수 리터럴로 사용할 수 없다

7. (1) SampleProgram.java
(2) SampleProgram 클래스에 main() 메소드가 없기 때문에 오류가 난다. main() 을 삽입하여 다음과 같이 작성하면 된다.
public class SampleProgram {
 public static void main(String[] args) { int i;
  int j; i = 20; j = 30;
  System.out.println(i+j); }}

8. (1) case 1로 분기하여 break를 만날 때까지 실행되므로 다음과 같이 출력됨 : 옵션 1 옵션 2 옵션 3
   (2) case 2로 분기하여 break를 만날 때까지 실행되므로 다음과 같이 출력됨 : 옵션 2 옵션 3
   (3) case 3으로 분기하여 break를 만날 때까지 실행되므로 다음과 같이 출력됨 : 옵션 3
   (4) default 문으로 분기하므로 다음과 같이 출력됨 : 해당 없음

9. i = (j%2 == 0)?10:20;  <-- 조건 연산자 

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