JAVA/java 문제

[자바JAVA] 조건문 - 주민등록번호를 입력받아 여자, 남자 구분, 년도 출생 구분하기 if문 , switch문 , charAt(), String타입을 char타입으로

자바칩 프라푸치노 2020. 10. 2. 07:19

문제 - 주민등록번호를 입력받아 여자인지 남자인지, 2000년도 이후 출생인지 이전 출생인지 출력하는 코드입니다.

 

 

전체 코드입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import java.util.Scanner;
 
public class 문제5_2 {
 
    public static void main(String[] args) {
    
        
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("당신의 주민번호를 입력하세요. (011231-1111222) : ");
        String regNo = scanner.nextLine(); //주민번호 입력창
        
        char gender= regNo.charAt(7); //regNo에서 8번째 문자를 보고 gender을 판단한다.
                                    // 배열은 0 부터 시작이라서 8번째는 (7)이다. 
        String gender1; //마지막에 남자, 여자를 변수로 출력하기 위하여 따로 설정해줌.
        char year = regNo.charAt(0); //주민번호 첫번째 자리 숫자를 보고 출생연도가 2000년대 이후인지 이전인지 알수 있음
        String year1; // 2000년 이전, 이후를 변수로 출력하기 위하여 따로 설정해줌.
        
        
            
        //if 문
        if (gender == '1') {
            gender1 = "남자";
        } else if (gender == '2') {
            gender1 = "여자";
        } else {
            gender1 = "성별이 없습니다.";
        } //성별 판단
        
        
        
        if (year >= '3' ) {
            year1 = "2000년 이전";
        } else {
            year1 = "2000년 이후";
        } //년도 판단
        
        System.out.println("당신은 " + year1 + "에 출생한 " + gender1 + "입니다.");
        
        
        //switch문
        switch (gender) {
        case '1':
            gender1 = "남자";
            break;
        case '2':
            gender1 = "여자";
    
        } //성별판단
 
        
        switch (year) {
        case '0':
        case '1':
        case '2'//year은 char형이므로 ''안에 넣어줘야한다.
            year1 = "2000년 이후";
            break;
 
        default:
            year1 = "2000년 이전";
            break;
        } // 2000년대 이후 판단. 2020년이니까 year1 이 2까지는 2000년대 이후 출생. 
 
        System.out.println("당신의 주민번호를 입력하세요.: " + regNo);
        System.out.println("당신은 " + year1 + "에 출생한 " + gender1 + "입니다.");
        scanner.close();
    }
 
}
 
cs

1) 스캐너를 통해서 주민번호를 String타입으로 입력을 받습니다.

그리고 남자인지여자인지는 970112-2544111(참고로 아무글자나 쓴 것입니다.)

- 뒤의 2를 보면 알 수 있죠

그러면 0번째 인덱스 부터 시작해서

인덱스가 이렇게 되어있습니다.

7번째 인덱스가 1이면 남자, 2면 여자이죠

그래서 char형으로 받아주고

String타입에서 charAt(인덱스)이렇게 써주면

String타입의 그 인덱스가 char형으로 변환되어 들어옵니다.

 

2) 

year은 첫번째 인덱스를 보면 되죠

지금이 2020년이니까

가장 최근인 2020년에 태어난 사람은

시작이 20_ _ _ _  이렇게 시작을 하겠습니다.

그래서 0번째 (첫번째) 인덱스가

0, 1, 2 이면 2000년도 이후 출생

그 외는 2000년도 이 전 출생이겠죠.

그래서 char형 year도 주민번호의 0번쨰 인덱스로 초기화해주었습니다.

3) if문 사용

if문으로 gender가 남자인지 여자인지 판단해주고

year이 언제인지 판단해준 다음

출력을 해줍니다.

 

4) switch문으로 

년도만 판단을 해주었는데요

위에서 말한 그대로 year이 0, 1, 2일때와 나머지일때로 나누어 주었습니다.

 

출력결과입니다.

728x90