공부/Java

자바의 신 직접해봅시다, 정리해봅시다 정리 (5장 ~ 6장)

데부한 2023. 8. 22. 23:12
반응형

 

 

자바의 신 세트 | 이상민 - 교보문고

자바의 신 세트 | 『자바의 신 세트』는 성능 전문가로 널리 알려진 저자가 십수 년의 자바 개발 경험을 바탕으로 현장에서 꼭 필요한 기초지식을 정리한 책이다. 현장 중심으로 자바의 기본서

product.kyobobook.co.kr

 

 

이전 글

 

자바의 신 직접해봅시다, 정리해봅시다 정리 (1장 ~ 4장)

자바의 신 세트 | 이상민 - 교보문고 자바의 신 세트 | 『자바의 신 세트』는 성능 전문가로 널리 알려진 저자가 십수 년의 자바 개발 경험을 바탕으로 현장에서 꼭 필요한 기초지식을 정리한 책

devhan.tistory.com

 

 

5장. 계산을 하고 싶어요

직접해봅시다.

public class SalaryManager {

	// 월 급여
	public double getMonthlySalary(int yearlySalary) {

		double monthSalary  = yearlySalary / 12.0;
		double tax = calculateTax(monthSalary);
		double nationalPension = calculateNationalPension(monthSalary);
		double healthInsurance = calculateHealthInsurance(monthSalary);

		double taxCredit = tax + nationalPension + healthInsurance;

		
		return monthSalary -= taxCredit;
	}

	// 근로소득세
	public double calculateTax(double monthSalary) {
		double tax = monthSalary * (12.5/100);
		System.out.println("tax : " + tax);
		return tax;
	}

	// 연금
	public double calculateNationalPension(double monthSalary) {
		double nationPension = monthSalary * (8.1/100);
		System.out.println("nationalPension : " + nationPension);
		return nationPension;
	}

	// 건강보험료
	public double calculateHealthInsurance(double monthSalary) {
		double healthInsurance = monthSalary * (13.5/100);
		System.out.println("healthInsurance : " + healthInsurance);
		return healthInsurance;
	}

	public static void main(String[] args) {
		SalaryManager manager = new SalaryManager();
		System.out.println(manager.getMonthlySalary(20000000));
	}
}

 

정리해봅시다.

  1. 값을 할당할 때 사용하는 연산자의 기호는 무엇인가요?
    = (대입 연산자)

  2. 기본적인 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지를 계산할 때 사용하는 연산자의 기호는 무엇인가요?
    +(덧셈), -(뺄셈), *(곱셈), /(나눗셈), %(나머지)

  3. +=는 무엇을 할 때 사용하는 연산자인가요?
    +=는 기존 변수에 저장되어 있던 값과 += 뒤에 오는 값을 더해서 변수에 저장한다.

  4. 여러분들이 연산의 순서를 모르거나 확실히 하고 싶을 때에는 어떤 기호를 사용해야 하나요?
    괄호

  5. ==와 !=의 차이는 무엇인가요?
    == 는 같다, !=는 다르다.

  6. <와 <=의 차이는 무엇인가요?
    A < B는 A가 B보다 작다. A <= B는 A가 B보다 작거나 같다.

  7. ! 연산자는 어떤 타입에 사용할 수 있나요?
    boolean

  8. ? :로 표시하는 삼항 연산자의 ?와 : 뒤에 명시해 주는 값은 무엇을 의미하나요?
    조건 ? true 일 때 대입되는 값 : false일때 대입되는 값

  9. 자바는 형 변환을 한다고 했는데, short의 값을 long에 할당할 때에는 어떤 것을 해 주어야 하나요?
    아무것도 안해도 됨

  10. 반대로 long 값을 short에 할당할 때에는 어떤 것을 해 주어야 하나요?
    명시적 형변환

  11. 9와 10의 경우 중 어떤 경우가 기존 값이 사라지고, 엉뚱한 값으로 바뀔 수 있나요?
    범위가 넓은 long 타입의 값을 short로 형변환 할 경우 엉뚱한 값으로 바뀔 수 있다.

 

 

6장. 제가 조건을 좀 따져요

직접해봅시다.

public class InterestManager {

	public double getInterestRate(int day) {
		if( day <= 90 ) return 0.5;
		else if( day <= 180 ) return 1.0;
		else if( day <= 364 ) return 2.0;
		else return 5.6;
	}

	public double calculateAmount(int day, long amount) {
		double rate = getInterestRate(day);
		double resultRate = amount * (rate/100);
		return amount + resultRate;		
	}

	public static void main(String[] args) {
		InterestManager manager = new InterestManager();
		
		for(int i = 10; i <= 370; i+=10) {
			double result = manager. calculateAmount(i, 1000000);
			System.out.println("day  : " + i + "  amount : " + result);
		}	
	}
}

 

정리해봅시다.

  1. if 문장의 소괄호 안에는 어떤 형태의 결과가 제공되어야 하나요?
    boolean

  2. if 조건에 맞지 않는 모든 경우를 처리할 때 사용하는 예약어는 뭔가요?
    else

  3. switch를 사용할 수 있는 기본 자료형의 타입에는 어떤 것들이 있나요?
    long 타입을 제외한 정수형 타입, Enum, String

  4. switch 블록 안에서 비교 대상값 앞에 사용하는 예약어는 무엇인가요?
    case

  5. switch 조건을 빠져나가도록 하는 예약어는 무엇인가요?
    break

  6. switch 조건들에 맞지 않을 때 기본 처리를 하기 위한 예약어는 무엇인가요?
    default

  7. while문의 소괄호 안에는 어떤 형태의 결과가 제공되어야 하나요?
    boolean

  8. while문을 무조건 한번은 실행하게 하려면 어떻게 해야 하나요?
    do-while 사용

  9. while문을 마음대로 빠져나가게 하려면 어떤 예약어를 사용하면 되나요?
    break

  10. while문 중간에 while문의 소괄호 점검 구문으로 건너뛰도록 할 때 사용하는 예약어는 무엇인가요?
    continue

  11. for 루프의 소괄호 안의 가장 첫 구문(첫 세미콜론 앞의 문장)은 for 루프가 수행되는 동안 몇 번 수행되나요?
    한 번

  12. for 루프의 소괄호 안의 중간에 있는 구문은 어떤 타입의 결과가 제공되어야 하나요?
    boolean

  13. for 루프의 소괄호 안의 마지막에 있는 구문에서는 어떤 작업을 수행해야 하나요?
    조건값을 증감시킴
반응형