6월 9일 수요일 (22일차) - 로그인프로그램ㅇ

@_@·2021년 6월 8일
0

Java 1부

목록 보기
25/27

<목차>
(배열을 활용한)
ㅇ 회원가입 로그인 프로그램

  • 회원가입/로그인/종료 창 만들기
  • 회원가입 정보 배열에 담기
  • 로그인 프로그램 완성



ㅇ 회원가입 로그인 프로그램

  • 아이디와 패스워드를 입력하여 변수가 아니라 배열에 저장해서 로그인 하는 프로그램

ㅇ 실습1 : 회원가입/로그인/종료 창 만들기


(내 풀이)

  • 오류1 : 숫자를 잘못 입력했을 경우도 넣어주기
  • 수정2 : 보통 True 이용해서 while문 안에 우선 무조건 들어오게 한 뒤, 필요한 순간에 break 넣어주면 돼
    (전형적인 패턴이니 암기하자★)

(쌤 풀이 - 리팩토링)

  • 1단계 : 우선 조건문을 완성해보자
  • 2단계 : 반복문 안에 넣기
    • 3번 입력하기 전 까지는 회원가입 로그인 정보가 계속 나와야 해 => 반복문. 그 중 끝이 정해지지 않은 while문
    • 3번 눌렀을 때 종료이므로 브레이크를 3번에
    • 항상! 숫자 정확히 입력해 달라는 문구를 마지막 엘스로~




ㅇ 실습 2 : 회원가입 정보 배열에 담기


(내 풀이)

  • 오류1 : 배열의 길이가 3이므로 3명 이상이면 더 이상 가입할 수 없다는 문구 떠야 해

(수정)


(쌤 풀이)

  • 배열에 담기
  • 1번을 누르면 우선 회원가입 문구까지는 나와야 해
  • 그 다음 카운트 변수 cnt로 조건문 고고
    (카운트 하는 변수 첨가하는 패턴을 아얘 암기하자)
    • 인덱스 길이 전이면 가입 문장이, 그보다 크다면 가입 불가 문장이 뜨도록 => 조건문
    • 최초 선언은 반복문 밖에, 와일문 안에 두면 계속 초기화 돼
  • 와일문 밖에(위) 배열을 선언해 둬야, 배열이 초기화 되지 않아
    new String이 반복문 안에 들어가면 전에 있는 데이터 싹 날아가게 돼
  • 배열 배웠으면 시험문제로 내려고 했던 문제! 파트너 문제로!

  • 비슷한 문제 최종 시험에 낼 거야!!!!★




ㅇ 실습 1-3 : 로그인 프로그램 완성

(내 방법 괜찮은지)

뭐가 틀린건지 찾아보기★★★★


( 주의점 )
for문을 id.length 까지 돌리고 배열.equals(인풋)을 사용했을 시의 문제점

  • 없는 사람을 로그인 시키면 에러 나
  • 왜?? 레퍼런스 배열은 초깃값이 null 이라서
    • 널 = 아무것도 안 들어있다. = 주소를 가지고 있지 않다를 의미
  • 그래서 배열의 길이만큼 포문을 돌다가 null 이 들어있는 인덱스를 마주치면
    널 포인트 익샙션 에러 NullPointerException
  • 외우면 좋아!!!!! 이 에러를 정~~~말 많이 보게 될 거야
  • null인 상태에서는 아무것도 할 수 없어
    • id[i] 가 널인 상태면 비교할 게 없는 거야
    • 함수 기능을 쓸 수 없다는 말
  • 인풋.equals(배열)은 ? input_id는 널이 아니니까 equals를 쓸 수 있어
  • 그래서 길이 전체 말고 회원가입 수까지만, 가입 때 썼던 카운트 변수 사용해서 널 전까지만 비교하도록
  • 이런 사소한 게 정말 많은 차이가 있어!!
  • 결론
    • 배열의 length만큼 다 돌리는 게 아니라, 내가 입력받은 회원 수만큼 돌려야 해 => cnt 사용
    • null을 주의하기 위해 인풋.이퀄스(배열) 꼴 사용


(쌤풀이)

  • 방법1 : T/F 를 사용하여 성공과 실패를 조건문으로
    • 코드가 길긴 하지만 더 쉬운 방법
    • 반복문 위에 논리형 변수 하나 만들어서 성공->폴스, 끝끝내 성공을 못 했으면 -> 트루 가 되도록 해
    • 마지막에 isCheck가 트루라면 로그인 실패 나오게 하면 돼
  • 방법2 : 이 전에 성공하면 브레이크로 끝, 마지막까지 도달했다면 실패
    • 더 어렵지만 코드가 간결
    • 성공한다면 if문 만나서 (=안으로 들어와서) 성공 출력하고 브레이크
    • 근데 여기를 한 번도 못 왔다면! 즉, 반복문의 i가 cnt-1까지 도달했다면 로그인 실패


profile
STEP BY STEP

0개의 댓글

관련 채용 정보