본문 바로가기
Spring-Java/Java

Day06_배열예제2

by 현대타운301 2023. 8. 21.

예제

 

source code

package day06;

import java.util.Scanner;

public class Example_7 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		// 사이트 회원가입
		Scanner sc = new Scanner(System.in);
		String[] name = new String[10];
		String[] id = new String[10];
		String[] pw = new String[10];
		int cnt = 0;
		int loginIndex = -1;
		
		while (true) {
			boolean run = true;
			System.out.println("==========라즈베리사이트==========");
			System.out.println("1.회원가입 2.로그인 3.회원목록 4.회원조회 0.종료");
			System.out.print("메뉴선택 > ");
			int menu = sc.nextInt();
			
			if (menu == 1) {
				while (run) {
					int j = 0;
					System.out.print("이름 > ");
					String newName = sc.next();
					for (int i = 0; i < cnt; i++) {
						if (name[i].equals(newName)) {
							System.out.println("회원정보가 존재합니다...");
							j++;
						} 
					}
					if (j == 0) {
						while (run) {
							j = 0;
							System.out.print("Id > ");
							String newId = sc.next();
							for (int i = 0; i < cnt; i++) {
								if (id[i].equals(newId)) {
									System.out.println("이미 사용중인 Id 입니다...");
									j++;
								}
							}
							if (j == 0) {
								id[cnt] = newId;
								System.out.print("Pw > ");
								pw[cnt] = sc.next();
								name[cnt] = newName;
								System.out.printf("\n%s님, 회원가입을 축하합니다!\n", name[cnt]);
								run = false;
								cnt++;
								break;
							}
						}
					}
				}
			} else if (menu == 2) {
				int j = 0;
				System.out.print("Id > ");
				String inputId = sc.next();
				System.out.print("Pw > ");
				String inputPw = sc.next();
				for (int i = 0; i < cnt; i++) {
					if (id[i].equals(inputId) && pw[i].equals(inputPw)) {
					System.out.printf("\n%s님, 어서오세요!\n", name[i]);
					j++;
					loginIndex = i;
					} else if (id[i].equals(inputId) && !pw[i].equals(inputPw)) {
						System.out.println("비밀번호가 다릅니다!");
						j++;
					} 
				} if (j == 0) {
					System.out.println("회원정보가 없습니다...");
				}
			} else if (menu == 3) {
				System.out.println("이름\tId\t");
				System.out.println("=====================");
				for (int i = 0; i < cnt; i++) {
					System.out.printf("%s\t%s\n", name[i], id[i]);
				}
			} else if (menu == 4) {
				int j = 0;
				System.out.print("조회할 회원 이름 > ");
				String nameSearch = sc.next();
				for (int i = 0; i < cnt; i++) {
					if (name[i].equals(nameSearch)) {
						System.out.println("=========회원정보=========");
						System.out.printf("이름: %s\tId: %s\tPw: %s\n", name[i], id[i], pw[i]);
						j++;
						break;
					}
				}
				if (j == 0) {
					System.out.println("회원정보가 없습니다...");
				}
			} else if (menu == 0) {
				System.out.println("프로그램 종료...");
				break;
			} else {
				System.out.println("0~4까지 입력하세요...");
		}
		System.out.println();
		
		// 로그인 후
		if (loginIndex != -1) {
			while (true) {
				boolean Run = true;
				int pwCount = 0;
				
				System.out.println("==========라즈베리사이트["+name[loginIndex]+"님]==========");
				System.out.println("1.정보수정 2.로그아웃 3.회원정보 0.종료");
				System.out.print("메뉴선택 > ");
				int newMenu = sc.nextInt();
	
				if (newMenu == 1) {
					while (Run) {
						int j = 0;
						System.out.print("이름 > ");
						String newName = sc.next();
						if (name[loginIndex].equals(newName)) {
							System.out.println("이름은 그대로 하시겠습니까?_Y/y");
							String answer = sc.next();
							if (!(answer.equals("Y") || answer.equals("y"))) {
								break;
							}
						} else {
							for (int i = 0; i < cnt; i++) {
								if (name[i].equals(newName)) {
								System.out.println("회원정보가 존재합니다...");
								j++;
								}
							}
						}
						if (j == 0) {
							while (Run) {
								int k = 0;
								System.out.print("Id > ");
								String newId = sc.next();
								for (int i = 0; i < cnt; i++) {
									if (id[i].equals(newId)) {
										System.out.println("이미 사용중인 Id 입니다...");
										k++;
									}
								}
								if (k == 0) {
									while (Run) {
										if (pwCount == 3) {
											System.out.println("비밀번호를 3회 틀렸습니다.\n처음 화면으로 돌아갑니다...");
											Run = false;
										} else {
											System.out.print("Pw > ");
											String inputNewPw = sc.next();
											if (pw[loginIndex].equals(inputNewPw)) {
												name[loginIndex] = newName;
												id[loginIndex] = newId;	
												System.out.println("회원정보 수정 완료!");
												Run = false;
												break;
											} else {
												pwCount++;
												System.out.println("비밀번호가 다릅니다");
											}
										}
									}
								}
							}
						}
					}
				} else if (newMenu == 2) {
					System.out.println("로그아웃...");
					loginIndex = -1;
					break;
				} else if (newMenu == 3) {
					System.out.println("이름\tId\t");
					System.out.println("=====================");
					System.out.printf("%s\t%s\n", name[loginIndex], id[loginIndex]);
				} else if (newMenu == 0) {
					System.out.println("프로그램 종료...");
					break;
				} else {
					System.out.println("0~3까지 입력하세요...");
				}
				System.out.println();
				}
			}
		}
		sc.close();
	}
}

 

실행결과

==========라즈베리사이트==========
1.회원가입 2.로그인 3.회원목록 4.회원조회 0.종료
메뉴선택 > 1
이름 > 홍길동
Id > test1
Pw > 1234

홍길동님, 회원가입을 축하합니다!

==========라즈베리사이트==========
1.회원가입 2.로그인 3.회원목록 4.회원조회 0.종료
메뉴선택 > 1
이름 > 이순신
Id > test2
Pw > 12345

이순신님, 회원가입을 축하합니다!

==========라즈베리사이트==========
1.회원가입 2.로그인 3.회원목록 4.회원조회 0.종료
메뉴선택 > 1
이름 > 김자바
Id > test1
이미 사용중인 Id 입니다...
Id > test2
이미 사용중인 Id 입니다...
Id > test3
Pw > 123

김자바님, 회원가입을 축하합니다!

==========라즈베리사이트==========
1.회원가입 2.로그인 3.회원목록 4.회원조회 0.종료
메뉴선택 > 3
이름	Id	
=====================
홍길동	test1
이순신	test2
김자바	test3

==========라즈베리사이트==========
1.회원가입 2.로그인 3.회원목록 4.회원조회 0.종료
메뉴선택 > 4
조회할 회원 이름 > 아이유
회원정보가 없습니다...

==========라즈베리사이트==========
1.회원가입 2.로그인 3.회원목록 4.회원조회 0.종료
메뉴선택 > 4
조회할 회원 이름 > 김자바
=========회원정보=========
이름: 김자바	Id: test3	Pw: 123

==========라즈베리사이트==========
1.회원가입 2.로그인 3.회원목록 4.회원조회 0.종료
메뉴선택 > 2
Id > test
Pw > 1234
회원정보가 없습니다...

==========라즈베리사이트==========
1.회원가입 2.로그인 3.회원목록 4.회원조회 0.종료
메뉴선택 > 2
Id > test1
Pw > 1234

홍길동님, 어서오세요!

==========라즈베리사이트[홍길동님]==========
1.정보수정 2.로그아웃 3.회원정보 0.종료
메뉴선택 > 3
이름	Id	
=====================
홍길동	test1

==========라즈베리사이트[홍길동님]==========
1.정보수정 2.로그아웃 3.회원정보 0.종료
메뉴선택 > 1
이름 > 홍길동
이름은 그대로 하시겠습니까?_Y/y
y
Id > test2
이미 사용중인 Id 입니다...
Id > test3
이미 사용중인 Id 입니다...
Id > test4
Pw > 123
비밀번호가 다릅니다
Pw > 12
비밀번호가 다릅니다
Pw > 11
비밀번호가 다릅니다
비밀번호를 3회 틀렸습니다.
처음 화면으로 돌아갑니다...

==========라즈베리사이트[홍길동님]==========
1.정보수정 2.로그아웃 3.회원정보 0.종료
메뉴선택 > 1
이름 > 홍길동
이름은 그대로 하시겠습니까?_Y/y
y
Id > test4
Pw > 1234
회원정보 수정 완료!

==========라즈베리사이트[홍길동님]==========
1.정보수정 2.로그아웃 3.회원정보 0.종료
메뉴선택 > 3
이름	Id	
=====================
홍길동	test4

==========라즈베리사이트[홍길동님]==========
1.정보수정 2.로그아웃 3.회원정보 0.종료
메뉴선택 > 2
로그아웃...
==========라즈베리사이트==========
1.회원가입 2.로그인 3.회원목록 4.회원조회 0.종료
메뉴선택 > 3
이름	Id	
=====================
홍길동	test4
이순신	test2
김자바	test3

==========라즈베리사이트==========
1.회원가입 2.로그인 3.회원목록 4.회원조회 0.종료
메뉴선택 > 2
Id > test3
Pw > 123

김자바님, 어서오세요!

==========라즈베리사이트[김자바님]==========
1.정보수정 2.로그아웃 3.회원정보 0.종료
메뉴선택 > 1
이름 > 아이유
Id > test1
Pw > 123
회원정보 수정 완료!

==========라즈베리사이트[아이유님]==========
1.정보수정 2.로그아웃 3.회원정보 0.종료
메뉴선택 > 3
이름	Id	
=====================
아이유	test1

==========라즈베리사이트[아이유님]==========
1.정보수정 2.로그아웃 3.회원정보 0.종료
메뉴선택 > 2
로그아웃...
==========라즈베리사이트==========
1.회원가입 2.로그인 3.회원목록 4.회원조회 0.종료
메뉴선택 > 3
이름	Id	
=====================
홍길동	test4
이순신	test2
아이유	test1

==========라즈베리사이트==========
1.회원가입 2.로그인 3.회원목록 4.회원조회 0.종료
메뉴선택 > 5
0~4까지 입력하세요...

==========라즈베리사이트==========
1.회원가입 2.로그인 3.회원목록 4.회원조회 0.종료
메뉴선택 > 0
프로그램 종료...

'Spring-Java > Java' 카테고리의 다른 글

Day08_ArrayList<>, DateTimeFormatter  (0) 2023.08.24
Day07_접근제한자, class(필드, 생성자, 메소드)  (0) 2023.08.23
Day05_배열예제  (2) 2023.08.20
Day04_while(boolean), 배열(Array)  (0) 2023.08.17
Day03_package, printf, while  (0) 2023.08.17