본문 바로가기
혼자서 개발새발

반복문으로 카페 주문 앱을 만드는데 성공하다!(while, if, else)

by 휴일이 2022. 8. 31.

 

코딩 일주일차

메가커피에서 커피를 사 마실 때를 떠올리며

카페 주문 앱을 만들어보았다 +_+

 

반복문은 예제를 따라쳐본 게 전부지만!!

그래도 카페 주문 앱 정돈 만들 수 있지 않을까? 생각하고

패기롭게 도전!!!

 

 

담배피면서 주문 순서를 써보다

 

 

여러 시행착오를 겪어가며 (ㅠㅠ)

어찌어찌 만들기를 성공해보았다

 

import java.util.*;

public class CafeApp {

	public static void main(String[] args) {

		int menu = 0;
		int card = 0;
		int point = 0;
		
		Scanner cafe = new Scanner(System.in);
		
		while(true) {
			System.out.println("휴일 카페에 오신 걸 환영해요!");
			System.out.println("주문할 메뉴의 번호를 입력하세요");
			System.out.println("1 아메리카노");
			System.out.println("2 스무디");
			System.out.println("3 캐모마일");
			
			String numMenu = cafe.nextLine();
			menu = Integer.parseInt(numMenu);
		
			
		
			System.out.println("카드입니까 현금입니까?");
			System.out.println("1 카드");
			System.out.println("2 현금");
			
			String pay = cafe.nextLine();
			card = Integer.parseInt(pay);
			
			if(menu==1) {
				System.out.print("카드 번호를 입력하세요");
				
				String cardNum = cafe.nextLine();
				card = Integer.parseInt(cardNum);
			
				
			} else {
				System.out.print("적립 번호를 입력해주세요.(01012345678)");
				
				String Poin = cafe.nextLine();
				point = Integer.parseInt(Poin);
				
			}
		
		System.out.println(" === 영수증 === ");
		System.out.println("주문하신 메뉴는 "+menu+"입니다");
		System.out.println("카드번호 : "+card);
		System.out.println("적립번호 : "+point);
		System.out.println("이용해주셔서 감사합니다!");
		break;
		
		}
	}
}

 

 

결과는?

혼자서 만든 첫 작품 치고는 ㅎㅎ

 

그런데 여기에서 아쉬운 점이 있었다

영수증에서 주문한 메뉴의 이름이 아닌 메뉴 번호로 뜨는 것과

카드 사용자는 적립을 할 수 없는 아쉬움...

 

 

 

그래서!

영수증에 고른 메뉴의 이름이 뜨고

카드 사용자도 적립 화면으로 넘어갈 수 있도록

코드를 좀 보완해보았다

 

 

import java.util.*;

public class CafeApp2 {

	public static void main(String[] args) {

		int menu = 0;
		int card = 0;
		int point = 0;
		String americano = "아메리카노";
		String smoothie = "스무디";
		String camomile = "캐모마일";
		
		Scanner cafe = new Scanner(System.in);
		
		while(true) {
			System.out.println("휴일 카페에 오신 걸 환영해요!");
			System.out.println("주문할 메뉴의 번호를 입력하세요");
			System.out.println("1 아메리카노");
			System.out.println("2 스무디");
			System.out.println("3 캐모마일");
			
			String numMenu = cafe.nextLine();
			menu = Integer.parseInt(numMenu);
				
			System.out.println("카드입니까 현금입니까?");
			System.out.println("1 카드");
			System.out.println("2 현금");
			
			String pay = cafe.nextLine();
			card = Integer.parseInt(pay);
			
			if(card==1) {
				System.out.print("카드 번호를 입력하세요");
				
				String cardNum = cafe.nextLine();
				card = Integer.parseInt(cardNum);
				
				System.out.println("적립 번호를 입력해주세요.(12345678)");
				String poin = cafe.nextLine();
				point = Integer.parseInt(poin);
			
				
			} else if(card==2) {
				System.out.print("적립 번호를 입력해주세요.(12345678)");
				
				String Poin = cafe.nextLine();
				point = Integer.parseInt(Poin);
				
			}
	 if(menu==1) {
		System.out.println(" === 영수증 === ");
		System.out.println("주문하신 메뉴는 "+americano+"입니다");
		System.out.println("카드번호 : "+card);
		System.out.println("적립번호 : "+point);
		System.out.println("이용해주셔서 감사합니다!");
		break;
		
		} else if(menu==2) {
			System.out.println(" === 영수증 === ");
			System.out.println("주문하신 메뉴는 "+smoothie+"입니다");
			System.out.println("카드번호 : "+card);
			System.out.println("적립번호 : "+point);
			System.out.println("이용해주셔서 감사합니다!");
			break;
			
		} else if(menu==3) {
			System.out.println(" === 영수증 === ");
			System.out.println("주문하신 메뉴는 "+camomile+"입니다");
			System.out.println("카드번호 : "+card);
			System.out.println("적립번호 : "+point);
			System.out.println("이용해주셔서 감사합니다!");
			
			break;
	}
		}
	}
}

 

String에 음료 이름을 저장하고

처음에 고른 메뉴 번호에 따라서 출력값이 달라지게 했다

결과는??

 

카드 결제

 

현금 결제

 

 

 

성공했을때 끼얏호~! 소리질렀다

 

아쉬운 점은 깔끔하게 정리할 수 있으면 좋을 텐데...ㅠㅠ

 

메소드? 클래스? 뭐 그런 게 있던데

메소드 라는 용어를 아직 이해하기가 힘들어서

어떻게 묶을지 감도 안 잡힌다...그래서 일단은 이대로 냅두기로 ㅎㅎ

혼자서 열심히 찾아서 해본 거라 뿌듯하긴 하다~~~!!

 

 

아쉬운 점

1. 현금 결제를 했을 경우엔 카드 번호가 안뜨게 하고 싶은데...어떻게 해야 좋을까?

2. 코드를 깔끔하게 묶고 싶은데 메소드란 걸로 묶을 순 없을까??

 

다음엔 이 두 개를 고민해봐야겠다 :)

 

 

 

내일은 친구랑 을왕리에 놀러가서

포스팅이 없을 예정!!

728x90