package t3_switch;
import java.util.Scanner;
/*
급여 계산기
1. 이름/직급코드/야근시간 을 입력한다.
2. 직급코드에 따른 본봉은 다음과 같다.
부장(B):5000000, 과장(K):4000000, 대리(D):3000000, 사원(S):2000000
3. 공제액: 전체급여의 10%로 한다.
4. 야근시간당 금액은 25000으로 한다.
5. 실수령액 = 본봉 + 수당 - 공제액
*/
public class homework {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name, code="", jikkub;
int night, bonbong, sudang, tax, netpay;
boolean code_check = true;
System.out.print("성명을 입력하세요. : ");
name = scanner.next();
while(code_check) {
System.out.print("\n직급코드를 입력하세요.\n(부장: B 과장: K 대리: D 사원: S) : ");
code = scanner.next();
switch (code) {
case "B": code_check = false;
break;
case "K": code_check = false;
break;
case "D": code_check = false;
break;
case "S": code_check = false;
break;
case "b": code_check = false;
break;
case "k": code_check = false;
break;
case "d": code_check = false;
break;
case "s": code_check = false;
break;
default:
System.out.println("잘못 된 입력입니다. 다시 입력해주세요.\n");
}
}
System.out.print("\n야근시간을 입력하세요. : ");
night = scanner.nextInt();
switch (code) {
case "B":
bonbong = 5000000;
jikkub = "부장";
break;
case "K":
bonbong = 4000000;
jikkub = "과장";
break;
case "D":
bonbong = 3000000;
jikkub = "대리";
break;
case "S":
bonbong = 2000000;
jikkub = "사원";
break;
case "b":
bonbong = 5000000;
jikkub = "부장";
break;
case "k":
bonbong = 4000000;
jikkub = "과장";
break;
case "d":
bonbong = 3000000;
jikkub = "대리";
break;
case "s":
bonbong = 2000000;
jikkub = "사원";
break;
default:
bonbong = 0;
jikkub = "확인불가";
}
sudang = 25000*night;
tax = (int)((bonbong + sudang) * 0.1);
netpay = bonbong + sudang - tax;
System.out.println("\n성명 : "+name+" 직급 : "+jikkub+"\n본봉 : "+bonbong+"원\n야간 수당액 : "+sudang+"원\n공제액 : "+tax+"원\n실수령액 : "+netpay+"원");
scanner.close();
}
}
첫댓글 대/소문자 입력처리는 잘 하셨는데,
가급적이면 같은 문자(B와 b, K와 k....)는 같이 위치시켰다면 불필요한 코드를 줄일수 있겠군요.(code_check=false;와 break 는 같은문자는 같이 위치시켜서 1회만 사용처리하면 됩니다.)
블록구조가 너무 많이 미숙한듯하네요.
수업시간에 배운것을 토대로 case구문의 블록처리를 다시한번 체크해 보시기 바랍니다.
출력형식은 아주 예쁘게 잘 하셨네요...
수고하셨어요.