본문 바로가기
프로그래밍/Java

[자바] 월급 계산 프로그램(조건문 switch 문 활용)

by 청량리 물냉면 2020. 11. 9.
반응형
문제

 

이름, 연차, 직급, 생일 달을 입력받아 월급을 계산하시오.

 

<조건>

1. 기본적으로 모든 직원의 기본급은 100만 원

2. 3년 차부터 추가 수당 50만 원, 5년 차부터 추가 수당 70만 원

2. 직급이 과장이면 보너스 100만 원, 부장이면 보너스 200만 원, 대리면 보너스 50만 원

4. 만약 생일 달인 경우 보너스 10만 원 추가 지급

 

 

실행화면

기본급 100만 원, 4년 차+50만 원,과장 +100만 원,생일 달 아님 0만 원(기준=7월)

=총 250만 원

 

 

코드
import java.util.Scanner;
public class wage {
	public static void main(String[] args) {
		Scanner sc = new Scanner (System.in);
		
		System.out.printf("이름을 입력해 주세요.");
		String name = sc.nextLine();
		
		System.out.printf("연차를 입력해 주세요.");
		int year = Integer.parseInt(sc.nextLine());
		
		System.out.printf("직급을 입력해 주세요.");
		String pos = sc.nextLine();
		
		System.out.printf("생일달을 입력해 주세요.");
		int brt = Integer.parseInt(sc.nextLine());
		
		int x = 0; // 연차 조건에 따른 값을 설정하기 위한 변수
		int prt = 7; // 현재 달
		int y = 0; // 현재 달과 사용자의 생일 달을 비교해 값을 정하기 위한 변수
		
		if (year >= 5) {
			x = 70;
		} else if (year >= 3) {
			x = 50;
		} else {
			x = 0;
		}
		
		if(brt == prt) {
			y = 10;
		}
		
		int z = 0; //직급에 따라 값을 설정하기 위한 변수
		
		switch(pos){
			case "대리": 
				z = 50;
				break;
			case "과장": 
				z = 100;
				break;
			case "부장": 
				z = 200;
				break;
			default: 
				z = 0;		
		}		
		int wage = 100 + x + y + z; //기본급 100+설정해둔 모든 변수값
		System.out.println(name+"님의 총 월급은 "+wage+"만원 입니다.");
	}
}

 

 

주의사항

 

1. switch 문 실행 시 대소문자 주의!

switch (o)

Switch (x)

 

2. switch 문을 빠져나오기 위해 break;문을 반드시 써 주어야 한다!!

 

 

더보기

개인기록용

 

1. if 문과 switch 문 순서는 상관없는지?

->이 문제에서는 상관없었다.

 

2. if 문 과정에서 System.out.println으로 모두 출력해 버림.(변수 설정에 대해 생각 못함.)

->변수를 만들어 저장한 뒤에 모두 더하면 된다.

 

 

반응형