[자바] 은행 프로그램(잔액 조회, 인출)(while문 활용)

2020. 11. 9. 17:49·프로그래밍/Java
반응형
문제

잔액조회와 인출이 가능한 은행 거래 프로그램을 만들어 보자.

 

<조건>

1. 프로그램에는 세 가지 메뉴가 포함된다. (잔액조회, 인출, 종료)

2. 사용자로부터 패스워드를 입력받아 정보를 보호한다. (패스워드가 틀린 경우 실행이 안 됨)

3. 인출금액은 잔액보다 클 수 없다.

4. 사용자가 종료를 원할 때까지 반복 실행한다.

5. 예금이 인출 된 후에는 인출된 만큼 잔액이 감소해야 한다.

 

 

실행화면

 

코드
import java.util.Scanner;
public class bank {
	public static void main(String[] args) {
		Scanner sc = new Scanner (System.in);
		System.out.println("============00은행=============\n"
				+ "사용하실 메뉴를 선택해주세요. \n"+ "1.예금조회 \n2.예금인출\n3.종료");
		int menu = Integer.parseInt(sc.nextLine()); //사용자에게서 입력받은 메뉴값을 저장하는 변수
		int total = 1000000;  //초기계좌잔액 설정
		int password = 0;  //패스워드 변수
		int out = 0;  //출금 금액
		
		while(menu!=3) {
				System.out.println("계좌 비밀번호를 입력해주세요."); 
                //1, 2번 메뉴를 실행하기 위해서는 비밀번호를 올바르게 입력해야 한다.(1,2번 공통)
				password = Integer.parseInt(sc.nextLine());
				
				while(password != 1234) {
				System.out.println("비밀번호 오류입니다. 다시 입력해주세요.");
				password = Integer.parseInt(sc.nextLine());
                //비밀번호 오류 시 다시 입력받는다.(1,2번 공통)
				}  
				
			if (menu == 1) {
				if (password==1234) {
					System.out.println("고객님의 계좌잔액은 "+total+"원 입니다.");
					} //사용자가 입력한 비밀번호와 설정해 둔 비밀번호가 동일한 경우 실행된다.
				}
			if (menu == 2) {			
				if(password == 1234){
					System.out.println("인출할 금액을 입력해주세요.");
					out = Integer.parseInt(sc.nextLine());
					while(out>total) { //인출할 금액이 잔액보다 큰 경우 오류 메시지를 송출
						System.out.println("잔액이 부족합니다. 다시 입력해주세요.");
						System.out.println("인출할 금액을 입력해주세요."); 
                        //인출 금액을 다시 입력받는다.
						out = Integer.parseInt(sc.nextLine());
						} 
					if(out <= total){
						total -= out; 
                        //잔액에서 인출된 금액을 감산한다. 결과적으로 인출을 여러번 실행하면 인출 총액만큼 잔액이 줄어든다.
						System.out.println("출금이 완료되었습니다.");
						}
					}
				}			
			System.out.println("============00은행=============\n "
					+ "사용하실 메뉴를 선택해주세요. \n"
					+ "1.예금조회 \n2.예금인출\n3.종료");
			menu = Integer.parseInt(sc.nextLine());
            //1번이나 2번 메뉴 실행 후 다시 메뉴값을 입력받기 위한 장치이다. 
            //사용자가 3.종료를 입력하기 전까지는 계속해서 프로그램이 돌아간다.
		}
		System.out.println("프로그램을 종료합니다.");
        //사용자가 3.종료를 입력하면 메시지 송출과 함께 프로그램이 종료된다.
	}
}

 

주의사항

while(password != 1234) {
    System.out.println("비밀번호 오류입니다. 다시 입력해주세요.");
    password = Integer.parseInt(sc.nextLine());
}  

패스워드가 틀렸을 때 오류메시지 송출과 함께 비밀번호를 다시 입력받는 부분.

언뜻 생각하면 이 부분을 if문을 이용해 처리해야겠다고 생각할 수 있지만 그렇게 하면 실행이 한 번만 이루어진다.

패스워드가 틀린 동안 계속 반복해야 하므로 반복문 while을 사용하는 것이 좋다.

while(out>total) {
    System.out.println("잔액이 부족합니다. 다시 입력해주세요.");
    System.out.println("인출할 금액을 입력해주세요.");
    out = Integer.parseInt(sc.nextLine());
}

이 부분도 같은 맥락에서 이해할 수 있다.

인출 금액이 잔액보다 큰 동안 계속 반복해야 하므로 while문(반복문)을 사용해야 한다.


 

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'프로그래밍 > Java' 카테고리의 다른 글

뉴렉처 자바 JDBC 프로그래밍 강의 내용 정리 9-18강  (0) 2021.08.16
뉴렉처 자바 JDBC 프로그래밍 강의 내용 정리 1-8강  (0) 2021.08.16
[자바] 배열 역순 출력  (0) 2020.11.09
[자바] 중국집 메뉴 주문 (금액 계산) 프로그램(while 문 활용)  (0) 2020.11.09
[자바] 월급 계산 프로그램(조건문 switch 문 활용)  (0) 2020.11.09
[자바] 총점 평균 학점 출력 프로그램(if문 활용)  (0) 2020.11.09
'프로그래밍/Java' 카테고리의 다른 글
  • 뉴렉처 자바 JDBC 프로그래밍 강의 내용 정리 1-8강
  • [자바] 배열 역순 출력
  • [자바] 중국집 메뉴 주문 (금액 계산) 프로그램(while 문 활용)
  • [자바] 월급 계산 프로그램(조건문 switch 문 활용)
청량리 물냉면
청량리 물냉면
프로그래밍 공부를 하고 있습니다. 공부 내용 정리 겸 정보 공유를 목적으로 합니다.
    반응형
  • 청량리 물냉면
    노력중인 블로그
    청량리 물냉면
  • 전체
    오늘
    어제
    • 분류 전체보기 (506)
      • 프로그래밍 (41)
        • Programming (1)
        • C | C++ (6)
        • Java (28)
        • Python (5)
      • 웹 프로그래밍 (2)
        • HTML | CSS (5)
        • JavaScript | TypeScript (41)
        • React (25)
        • Vue.js (0)
        • Next.js (18)
        • Spring & Spring Boot (13)
        • JSP & Servlet (1)
        • DB (4)
      • 웹 프로젝트 (77)
        • 웹 프로젝트 (22)
        • 🥨스낵몰 (3)
        • 👨‍👨‍👧‍👧소셜 가계부 (26)
        • 🌜꿈 일기장 (11)
        • 🔮포트폴리오 사이트 (11)
        • 🏃‍♂️팀 프로젝트: 일정관리 프로그램 (0)
        • 📈팀 프로젝트: AI기반 주식 분석 플랫폼 (0)
        • 😺Just Meow It: 조언 사이트 (2)
        • 📕Workly: 교대근무 다이어리 (1)
      • 앱 프로그래밍 (26)
        • Flutter (24)
        • Kotlin (2)
      • Problem Solving (166)
        • 백준 (52)
        • 프로그래머스 (79)
        • SWEA (29)
      • Computer Science (40)
        • 알고리즘 (14)
        • 컴퓨터 네트워크 (18)
        • 이산수학 (8)
      • Developer (47)
        • 후기 (4)
        • 자료정리 (4)
        • 취업 | 취준 (9)
        • SSAFY (1)
        • 웹개발 교육 프로그램 (9)
        • TIL (20)
  • 블로그 메뉴

    • 홈
    • Github
  • 공지사항

    • 프로그래밍 공부 중😊
  • 인기 글

  • 태그

    포트폴리오
    뉴렉처
    AWS
    프로젝트
    d3
    mysql
    React
    백준
    SWEA
    리액트
    자바스크립트
    자바
    spring boot
    블로그 제작
    bfs
    타입스크립트
    강의내용정리
    클론 프로젝트
    컴퓨터네트워크
    Next.js
    웹사이트
    구현
    알고리즘
    ZeroCho
    플러터
    공식문서
    Jiraynor Programming
    Til
    파이썬
    프로그래머스
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
청량리 물냉면
[자바] 은행 프로그램(잔액 조회, 인출)(while문 활용)
상단으로

티스토리툴바