코드 그라데이션
카드 3장 발급하여 결제와 비밀번호 변경 로직 만들기 본문
주요개념
- 클래스, 생성자, 멤버변수, 객체와 인스턴스
Card
public class Card {
public String user;
public int pw;
public int bal;
public Card(){;}
public Card(String user, int pw, int bal) {
this.user = user;
this.pw = pw;
this.bal = bal;
}
public int getPw() {
return pw;
}
public void setPw(int pw) {
this.pw = pw;
System.out.println("비밀번호 변경 완료!");
}
}
본 클래스
public class Quiz {
public static void main(String[] args) {
// 이름, 잔액, 비밀번호 등을 입력해야 하므로 스캐너 필요.
Scanner sc = new Scanner(System.in);
// 그래서 배열 형태가 필요
Card[] c = new Card[3];
// 3장이 발급될동안 해당 정보들이 반복될것이므로, for문을 사용해준다.
for (int i = 0; i < 3; i++) {
System.out.println("이름: ");
String name = sc.nextLine();
System.out.println("비밀번호: ");
int pw = sc.nextInt();
System.out.println("잔액: ");
int bal = sc.nextInt();
// 이렇게만 두면, 잔액이 버퍼에 남아있으므로, 버퍼를 일부러 한 번 비워주어야 한다.
sc.nextLine();
c[i] = new Card(name,pw,bal); //각각 i번째 카드에 정보 입력 후 카드 생성 가능
}
// 결제 구현
// 비밀번호 일치여부 확인, 일치하면 5000원 결제, 여건이 되지 않으면 "잔액이 부족합니다" 출력
//=> 일단 Card 클래스에서 비밀번호 일치하는지 여부를 판단하는 메서드가 필요하게 된다.
// 이거 그냥 Card 클래스에서 게터세터로 가지고 와서 일치여부 판단한다(Day06에서는 아직 배우지 않았음)
// 그래서 Card에 게터를 써줬음 그리고 결제 3번 반복할거니까, 반복문을 써준다.
for (int i = 0; i < 3; i++) {
System.out.println(c[i].user + " 님, 결제 진행 중입니다.");
System.out.println("패스워드를 입력해주세요: ");
int pw = sc.nextInt();
// 비밀번호 일치하는 경우
if(pw == c[i].getPw()) {
if(c[i].bal<5000) {
System.out.println("잔액이 부족합니다!");
}
else {
c[i].bal -=5000; // c[i].bal = c[i].bal - 5000;
System.out.println("결제가 완료되었습니다!");
}
}
// 비밀번호 불일치 하는 경우
else {
System.out.println("비밀번호가 일치하지 않습니다!");
}
}
// 비밀번호 변경
// 이번에는 새로운 값을 넣어줘야 하니, set이 필요할거야. Card클래스에 set을 써줘라.
for (int i = 0; i<3; i++) {
System.out.println(c[i].user + "님, 기존 패스워드를 입력하세요: ");
int pw = sc.nextInt();
// 비밀번호 일치, 변경
if(pw==c[i].getPw()) {
System.out.println("새로운 pw를 입력하세요: ");
pw = sc.nextInt();
// 변경한 비밀번호가 기존 비밀번호와 동일하다면 출력될 메시지는 아래에.
if(pw == c[i].getPw()) {
System.out.println("기존 비밀번호와 동일합니다!");
}
else {
c[i].setPw(pw); // 동일하지 않은 경우, 새롭게 들어온 값으로 변경된다!
}
}
// 비밀번호 불일치, 변경 불가 => if문 이외의 경우이므로, else문 처리를 통해 구현.
else {
System.out.println("비밀번호가 불일치하여 변경 불가!");
}
}
}
}
728x90
'Java > 간단한 Quiz' 카테고리의 다른 글
가위바위보 게임 만들기 (0) | 2023.01.14 |
---|---|
숫자를 입력받아 거꾸로 출력하기 (0) | 2023.01.14 |
계산기 만들기 (0) | 2023.01.14 |
반복문 관련 Quiz (1) | 2023.01.14 |
스캐너 사용 Quiz 3번째, 조건문 사용 (0) | 2023.01.14 |
Comments