{ // 화살표면 break 안써도 ㄱㅊ // ID, PW 를 입력받아 인스턴스 생성 System.out.print("ID:"); String id = scan.next(); System.out.print("PW:"); String pw = scan.next(); user = new User(id, pw); } case 2 -> { // 비밀번호 변경 로직 작성 scan.nextLine(); System.out.print("기존 비밀번호: "> { // 화살표면 break 안써도 ㄱㅊ // ID, PW 를 입력받아 인스턴스 생성 System.out.print("ID:"); String id = scan.next(); System.out.print("PW:"); String pw = scan.next(); user = new User(id, pw); } case 2 -> { // 비밀번호 변경 로직 작성 scan.nextLine(); System.out.print("기존 비밀번호: "> { // 화살표면 break 안써도 ㄱㅊ // ID, PW 를 입력받아 인스턴스 생성 System.out.print("ID:"); String id = scan.next(); System.out.print("PW:"); String pw = scan.next(); user = new User(id, pw); } case 2 -> { // 비밀번호 변경 로직 작성 scan.nextLine(); System.out.print("기존 비밀번호: ">
package Test;

import java.util.Scanner;

public class Ex02 {

	public static void main(String[] args) {
/*
		Ex.2 (40점)
		[ 비밀번호 변경 프로그램 ] 
		계정의 비밀번호를 변경하는 프로그램.
		새롭게 생성된 계정의 비밀번호와 일치하는 비밀번호를 입력한 경우
		비밀번호를 변경할 수 있도록 한다.
		
		* 필수 사항
		* User 클래스에 명시적 생성자, toString, getter/setter 생성할 것.
 */
		Scanner scan = new Scanner(System.in);
		
		int num = 1;
		User user = null;
		
		do {
			System.out.println();
			System.out.println("""
					= = = 메뉴 = = =
					1. new계정 생성
					2. 비밀번호 변경
					3. 계정정보 출력
					0. 프로그램 종료
					= = = = = = = =
					""");
			System.out.print("* 번호를 입력하세요: ");
			num = scan.nextInt();
			
			switch (num) {
				case 1 -> { // 화살표면 break 안써도 ㄱㅊ
					// ID, PW 를 입력받아 인스턴스 생성
					System.out.print("ID:");
                    String id = scan.next();
                    System.out.print("PW:");
                    String pw = scan.next();
					user = new User(id, pw);
				}
				case 2 -> {
					// 비밀번호 변경 로직 작성
					scan.nextLine();
					System.out.print("기존 비밀번호: ");
					String pw1 = scan.nextLine();
					
					if(user == null||!pw1.equals(user.getuserPw())) {
						System.out.println("* 계정이 없거나 변경되지 않았습니다.");
					} else if(pw1.equals(user.getuserPw())) {
						System.out.print("변경하려는 비밀번호: ");
						String pw2 = scan.nextLine();
						user.setuserPw(pw2);
						System.out.println("* 변경되었습니다.");
					}
					
				}
				case 3 -> {
					// 계정 정보 출력
					String Id = user.getuserId();
					String Pw = user.getuserPw();
					System.out.println(user);
					
					
				}
				case 0 -> {
					// 프로그램 종료(반복문 종료)
					System.out.println("프로그램을 종료합니다.");
					System.exit(0);
				}
				default -> System.out.println("잘못 입력했습니다.");

			}
		} while(true);
		
	}

}

// User 클래스
class User {
	private String userId;
	private String userPw;
	Scanner scan = new Scanner(System.in);
	
	// 명시적 생성자 생성
	public User(String userId,String userPw) {
		this.userId = userId;
		this.userPw = userPw;
	}
	

	
	// toString 생성
	public String toString() {
		return "[ID: " + userId +"," + " Pw: " + userPw + "]";
	}
	// Getter & Setter 생성
	
	public void setuserPw(String userPw) {
		this.userPw = userPw;
	}
	
	public String getuserId() {
		return this.userId;
	}
	
	public String getuserPw() {
		return this.userPw;
	}
}

명시적 생성자 이용하지 않고 풀었던 풀이(수정 전)

비교해보기

package Test_my;

//Test ex02 비교
import java.util.Scanner;

public class MY_Test {

	public static void main(String[] args) {
/*
		Ex.2 (40점)
		[ 비밀번호 변경 프로그램 ] 
		계정의 비밀번호를 변경하는 프로그램.
		새롭게 생성된 계정의 비밀번호와 일치하는 비밀번호를 입력한 경우
		비밀번호를 변경할 수 있도록 한다.
		
		* 필수 사항
		* User 클래스에 명시적 생성자, toString, getter/setter 생성할 것.
 */
		Scanner scan = new Scanner(System.in);
		User u = new User();
		
		int num = 1;
		User user = null;
		
		do {
			System.out.println();
			System.out.println("""
					= = = 메뉴 = = =
					1. new계정 생성
					2. 비밀번호 변경
					3. 계정정보 출력
					0. 프로그램 종료
					= = = = = = = =
					""");
			System.out.print("* 번호를 입력하세요: ");
			num = scan.nextInt();
			
			switch (num) {
				case 1 -> {
					// ID, PW 를 입력받아 인스턴스 생성
					
					u.CreateUser();
				}
				case 2 -> { // 화살표면 break 안써도 ㄱㅊ
					// 비밀번호 변경 로직 작성
					scan.nextLine();
					System.out.println("기존 비밀번호: ");
					String pw1 = scan.nextLine();
					if(pw1.equals(u.getuserPw())) {
						System.out.println("변경하려는 비밀번호: ");
						String pw2 = scan.nextLine();
						u.setuserPw(pw2);
						System.out.println("변경되었습니다.");
					} else {
						System.out.println("계정이 없거나 변경되지 않았습니다.");
					}
				}
				case 3 -> {
					// 계정 정보 출력
					String Id = u.getuserId();
					String Pw = u.getuserPw();
					String str =  u.toString();
					System.out.println(str);
					
					
				}
				case 0 -> {
					// 프로그램 종료(반복문 종료)
					System.exit(0);
				}
				default -> System.out.println("잘못 입력했습니다.");

			}
		} while(true);
		
	}

}

// User 클래스
class User {
	private String userId;
	private String userPw;
	Scanner scan = new Scanner(System.in);
	
	// 명시적 생성자 생성
	public User() {
		
	}
	
	// 계정 생성
	public void CreateUser() {
		System.out.print("ID:");
		userId = scan.next();
		System.out.print("PW:");
		userPw = scan.next();
	}
	
	
	// toString 생성
	public String toString() {
		return "[ID: " + userId + " Pw: " + userPw + "]";
	}
	// Getter & Setter 생성
	
	public void setuserPw(String userPw) {
		this.userPw = userPw;
	}
	
	public String getuserId() {
		return this.userId;
	}
	
	public String getuserPw() {
		return this.userPw;
	}
}