본문 바로가기

Java

[Java] 31

실습(ArrayList 총정리)

1. 회원가입, 로그인, 회원정보 검색이 가능한 프로그램 만들기

※ 회원 1명에 대한 정보 : User 객체 , 각각의 회원 정보 : ArrayList에 저장

(1) User.java에 회원 정보 출력 메소드 및 Getter와 Setter 생성

public class User {

	private String name;
	private String id;
	private String pw;
	
	public void show() {
		System.out.println("-----회원정보-----");
		System.out.println("이름 : " + this.name);
		System.out.println("id : " + this.id);
		System.out.println("pw : " + this.pw);
		System.out.println();  // 줄바꿈
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPw() {
		return pw;
	}
	public void setPw(String pw) {
		this.pw = pw;
	}
	
}

(2) ArrayListTask.java에서 회원가입, 로그인, 회원정보 검색이 가능한 프로그램 작성

import java.util.ArrayList;
import java.util.Scanner;

public class ArrayListTask {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		ArrayList<User> list = new ArrayList<>();

		while(true) {
			System.out.println("1. 회원가입하기");
			System.out.println("2. 로그인하기");
			System.out.println("3. 회원정보보기");
			System.out.println("4. 나가기");
			System.out.print("입력 >> ");
			int choice = Integer.parseInt(sc.nextLine());
			
			if(choice == 4) {  // 나가기
				break;


			} else if(choice == 1) { // 회원가입하기
				boolean flag = false;
				System.out.print("id : ");
				String id = sc.nextLine();
				for(int i = 0; i < list.size(); i++) {
					if(list.get(i).getId().equals(id)) {
						// 이미 회원가입한 회원 중에 같은 id가 존재한다
						flag = true;  // flag에 true를 담아준다.
						break;
					}
				}
				
				// for문이 끝나고 flag에 true가 담겨있다는 소리는 중복되는 아이디라는 의미이다.
				if(flag) {  // id가 중복될 때
					// 회원가입 실패
					System.out.println("회원가입 실패 : id 중복");
					
				} else { // id가 중복되지 않을 때
					User u = new User();
					u.setId(id);
					System.out.print("pw : ");
					u.setPw(sc.nextLine());  // u.pw = sc.nextLine() → pw가 private이기 때문에 setPw()를 이용한다.
					System.out.print("이름 : ");
					u.setName(sc.nextLine());  // u.name = sc.nextLine() → named이 private이기 때문에 setName()을 이용한다.
					
					list.add(u);
					System.out.println("회원가입 성공");
				}
				
				
			} else if(choice == 2) {  // 로그인하기
				// 아이디와 비밀번호 입력받기
				boolean flag = false;
				System.out.print("id : ");
				String id = sc.nextLine();
				System.out.print("pw : ");
				String pw = sc.nextLine();
				
				// list 안에서 아이디와 비밀번호가 같은 객체 찾기
				for(User user : list) {
					// 첫 반복 때 user : getId(0)
					if(user.getId().equals(id) && user.getPw().equals(pw)) {
						// 찾았다면 000님 로그인을 환영합니다 출력
						System.out.println(user.getName() + "님 환영합니다.");
						flag = true;
						break;
					} else {
						
					}
				}
				
				if(!flag) {  // flag == false
					// 없다면 로그인 실패
					System.out.println("로그인 실패 : 아이디 또는 비밀번호 오류");
				}	
				
				
			} else if(choice == 3) {  // 회원정보보기
				boolean flag = false;
				System.out.print("id : ");
				String id = sc.nextLine();
				for (User user : list) {
					if(user.getId().equals(id)) {
						user.show();
						flag = true;
						break;
					}
				}
				
				if(!flag) {
					System.out.println("검색 결과를 찾을 수 없습니다.");
				}
				
			} else {
				
			}
		}
		
	}
}
 

 

결과

 

id 중복

 

아이디 또는 비밀번호 오류

 

회원정보 검색 id 불일치

 

'Java' 카테고리의 다른 글

[Java] 33  (0) 2022.02.03
[Java] 32  (0) 2022.02.02
[Java] 30  (0) 2022.01.31
[Java] 29  (0) 2022.01.30
[Java] 28  (0) 2022.01.29