<목차>
(배열을 활용한)
ㅇ 회원가입 로그인 프로그램
- 회원가입/로그인/종료 창 만들기
- 회원가입 정보 배열에 담기
- 로그인 프로그램 완성
ㅇ 회원가입 로그인 프로그램
- 아이디와 패스워드를 입력하여 변수가 아니라 배열에 저장해서 로그인 하는 프로그램
ㅇ 실습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까지 도달했다면 로그인 실패
