Dev.J
[JAVA] 문제 2-2 주민번호 성별 판별 본문
주민등록번호(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;
}
}
}
}
}



스스로 풀어내서 뿌듯하다😁
그러나 뿌듯함과는 별개로 코드가 어지럽고 정돈되지 못한 느낌이며 중복코드도 많이 보인다.
막연히 메서드를 이용하면 더 깔끔하게 정리할 수 있을거라는 생각이 든다.
'Solved' 카테고리의 다른 글
[JAVA] 문제 3-2, 3-3 객체배열과 상속 (0) | 2021.09.05 |
---|---|
[JAVA] 문제 1-1 평균 출력 (0) | 2021.07.18 |
[JAVA] 문제 2-4 오버로딩 (0) | 2021.07.17 |
[JAVA] 문제 2-3 난수의 합과 평균 (0) | 2021.07.15 |
[JAVA] 문제 2-1 배열 - 정수의 합 출력/문자열 출력 (0) | 2021.07.15 |