Array - 회원가입

양혜정·2024년 1월 28일
0

Begin_java

목록 보기
37/71

1. 아이디에 공백을 입력할 경우

String id = "";		// while 문 조건에 사용하기 위해 미리 초기화한다.
do{
	System.out.print("\n▣ 아이디 : ");
    id = sc.nextLine();
    if(id.trim().isEmpty()) 
    	System.out.println(">>[경고] 아이디값을 공백이 아닌 다른 값으로 입력하세요!!\n");

2. 아이디를 중복 입력할 경우

Member[] arr_mbr = new Member[3];
int mbr_cnt = 0;
id:	
do{
	System.out.print("\n▣ 아이디 : ");
    ...
  	if~
    else { 
  for(int i=0; i<mbr_cnt; i++) {
      if(id.equals(arr_mbr[i].id)) {
          System.out.println(id+"는 이미 사용중인 id 이므로 새로운 id 값을 넣으세요.");
          continue id;	// 아이디입력 위 레이블하기	
      }	// end of if---------
  }	// end of for---------  
 break;
 }	// end of if------------
 } while(true);	// end of do~while--------------------------

3. 비밀번호 제한주기

  • 글자수, 대소문자, 숫자, 특수문자 등
if(passwd == null)
	return false;
int length = passwd.length();
if(length < 8 || length > 15)	// |는 하나라도 참이면 참, 즉 8~15 글자
	return false;				// or length > 8 && length <15 
    							// 하나라도 거짓이면 거짓
boolean upper = false, lower = false, number = false, special = false;
for(int i=0; i<length; i++) {
	char ch = passwd.charAt(i);		// 한글이 없는 암호 만들기
    if('가' <= ch && ch <= '힣') {
    	return false;
    }	// end of if------------
    if(Character.isUpperCase(ch))
    	upper = true;
    else if(Character.isLowerCase(ch))
    	lower = true;
    else if(Character.isDigit(ch))
    	number = true;
    else
    	special = true;
}	// end of for-------------------------
return upper && lower && number && special;		// 하나라도 false면 false

4. 성명 제한주기

  • 공백이 없고, 한글로 구성, 2글자 이상 6글자 이하
String name = "";
boolean result = false;
do{
	System.out.print("▣ 성명 : ");
    name = sc.nextLine();
    if(name.trim().isEmpty()) {
    	System.out.println(">>[경고] 성명을 공백이 아닌 다른 값으로 입력하세요!!");
	}	// end of if-----------------
    int length = name.length();
    if(length < 2 || length > 6) {	// or length >= 2 && length <= 6
    	return false;
        System.out.println(">>[경고] 성명은 2글자 이상 6글자 이하이어야만 합니다.");
	}	// end of if-------------------
    for(int i=0; i<name.length(); i++) {
   		char ch = name.charAt(i);
        if('가' <= ch && ch <= '힣') {
        	result = true;
        } else {
        	System.out.println("">>[경고] 성명은 공백이 없는 한글로만 입력하세요!! \n");
            result = false;		// false 를 주지 않으면 첫글자만 한글이여도 true로 나온다.
            break;	// false 값이 나오면 더이상 검사할 이유가 없기 때문에 반복문을 빠져나온다.
        }	// end of if---------------------
    }	// end of for----------------
} while (!result);	// result 값이 참이면 빠져나온다.      

5. 회원 정원이 초과할 경우

Member[] arr_mbr = new Member[3];
int mbr_cnt = 0;
switch(str_menuno) {
	case "1" : // 회원가입 선택할 경우
    if(mbr_cnt < arr_mbr.length) {
    ...	
    Member mbr = new Member();
    arr_mbr[mbr_cnt++] = mbr;	// 정원 내
    } else{
    	System.out.println(">> 정원마감되어 회원가입이 불가합니다!!\n");
	}	// end of if-------------------------
    break;	// switch 문을 빠져나간다.

6. 회원 조회하기

Member mbr = new Member();
mbr.id = id;
mbr.passwd = passwd;
mbr.name = name;
arr_mbr[mbr_cnt++] = mbr;

if(mbr_cnt == 0) {
	System.out.println(">> 가입된 회원이 없습니다. <<");
} else {
	System.out.println("-----------------------------\n"
						+ "아이디	  비밀번호	 성명  \n"
						+ "-----------------------------");
   	for(int i=0; i<mbr_cnt; i++) {
		System.out.println(arr_mbr[i].id+"\t"+arr_mbr[i].passwd+"\t"+arr_mbr[i].name+"\n");
    }	// end of for------------------
} 	// end of if-----------------

참고

isUpperCase, isLowerCase, isDigit : https://velog.io/@jjoung-2j/isUpperCase-isLowerCase-isDigit


정리

my.day08.c.object_array -> Main_member
my.util -> MyUtil

0개의 댓글

관련 채용 정보