Dev.J

[JAVA] 문제 2-2 주민번호 성별 판별 본문

Solved

[JAVA] 문제 2-2 주민번호 성별 판별

JJ____ 2021. 7. 18. 17:01

주민등록번호(123456-1234567) 를 입력받아 여자인지 남자인지를 판별하여 출력하시오.

 

-String ans = scan.next();
if(ans.equals("n")) 으로 반복문을 제어한다.


-charAt() 를 이용하여, 8번째 문자를 추출해 여자인지 남자인지를 판별한다.
if 1 or 3 > 남자 , if 2 or 4 > 여자

 

------------

 

import java.util.*;

 

public class Main

{

           public static void main(String[] args) {

                      Scanner sc = new Scanner(System.in);

                     

                      //String ans = sc.next();    //입력받는 주민번호 전체

                      String ans;

                      char gen = ' ';   //8번째 문자 추출해 저장_gender

                      String yn = "";

                      boolean start = true;

                     

                      while(start){

                          System.out.print("당신의 주민번호를 입력하세요. ");

                          ans = sc.next();    //입력받는 주민번호 전체

                          gen = ans.charAt(7);   //8번째 문자 추출해 저장_gender

                          String gend = Character.toString(gen);  //equals 사용하기 위해 String gend로 변환

                         

                          if(gend.equals("1")){

                              System.out.print("당신은 남자입니다.");

                              System.out.print("입력을 계속하시겠습니까? (y/n)");

                              yn = sc.next();

                              if(yn.equals("y")){

                                  continue;

                              }

                              else{

                                  break;

                              }

                          }

                          else if(gend.equals("2")){

                              System.out.print("당신은 여자입니다.");

                              System.out.print("입력을 계속하시겠습니까? (y/n)");

                              yn = sc.next();

                              if(yn.equals("y")){

                                  continue;

                              }

                              else{

                                  break;

                              }

                          }

                          else if(gend.equals("3")){

                              System.out.print("당신은 남자입니다.");

                              System.out.print("입력을 계속하시겠습니까? (y/n)");

                              yn = sc.next();

                              if(yn.equals("y")){

                                  continue;

                              }

                              else{

                                  break;

                              }

                          }

                          else if(gend.equals("4")){

                              System.out.print("당신은 여자입니다.");

                              System.out.print("입력을 계속하시겠습니까? (y/n)");

                              yn = sc.next();

                              if(yn.equals("y")){

                                  continue;

                              }

                              else{

                                  break;

                              }

                          }

                          else{

                              System.out.print("유효하지 않은 주민번호입니다.");

                              System.out.print("입력을 계속하시겠습니까? (y/n)");

                              yn = sc.next();

                              if(yn.equals("y")){

                                  continue;

                              }

                              else{

                                  break;

                              }

                          }

                      }

           }

}

문제풀이_JJ_1
문제풀이_JJ_2
문제풀이_JJ_3

스스로 풀어내서 뿌듯하다😁

그러나 뿌듯함과는 별개로 코드가 어지럽고 정돈되지 못한 느낌이며 중복코드도 많이 보인다.

막연히 메서드를 이용하면 더 깔끔하게 정리할 수 있을거라는 생각이 든다.

728x90