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

카페 주문 앱, 완벽하게 수정 완료 >_<

by 휴일이 2022. 9. 2.

https://hyuil.tistory.com/4?category=1302487 

 

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

코딩 일주일차 메가커피에서 커피를 사 마실 때를 떠올리며 카페 주문 앱을 만들어보았다 +_+ 반복문은 예제를 따라쳐본 게 전부지만!! 그래도 카페 주문 앱 정돈 만들 수 있지 않을까? 생각하고

hyuil.tistory.com

 

저번 포스팅 기억하시나용??

반복문으로 카페 주문 앱을 만든 휴일이!!

 

현금 결제를 해도 영수증에 카드 번호가 출력되는 것이

아쉬운 부분이었는데요 ㅠ_ㅠ

 

 

오늘!!!!

드디어 해결했습니다~!

 

 

<수정 전 코드>

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.print("적립 번호를 입력해주세요.(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;
	}
		}
	}
}

 

현금 결제를 해도 카드 번호가 뜨다...

 

저걸 어떻게 해결해야할지 막막했어요 ㅠ_ㅠ

if(card==1) { System.out.println("카드번호"+card) }

이렇게 따로 묶어도 봤는데 안 되고

아예 새로 하나하나 다시 짜야되나? 해서

좀 놓고 있었는데요

 

오늘 배열 포스팅 후에

갑자기!!! 번개 맞은 것처럼!! 생각나는 게 아니겠습니까????

&& 를 활용해보면 어떨까? 하구요

 

 

그래서 (조건 && 조건) 을 넣어서 쪼오끔 수정을 해보았습니다

 

 

 

<수정 후>

import java.util.*;

public class CafeApp3 {

	public static void main(String[] args) {

		int menu = 0;
		int card = 0;
		int point = 0;
		int cardNB = 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);
				cardNB = Integer.parseInt(cardNum);
				
				System.out.print("적립 번호를 입력해주세요.(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 && card==1) {
		System.out.println(" === 영수증 === ");
		System.out.println("주문하신 메뉴는 "+americano+"입니다");
		System.out.println("카드번호 : "+cardNB);
		System.out.println("적립번호 : "+point);
		System.out.println("이용해주셔서 감사합니다!");
		break;
		
		} else if(menu==1 && card==2) {
			System.out.println(" === 영수증 === ");
			System.out.println("주문하신 메뉴는 "+americano+"입니다");
			System.out.println("현금결제 하셨습니다");
			System.out.println("적립번호 : "+point);
			System.out.println("이용해주셔서 감사합니다!");
			break;

		}	 else if(menu==2 && card==1) {
			System.out.println(" === 영수증 === ");
			System.out.println("주문하신 메뉴는 "+smoothie+"입니다");
			System.out.println("카드번호 : "+cardNB);
			System.out.println("적립번호 : "+point);
			System.out.println("이용해주셔서 감사합니다!");
			break;
			
		} else if(menu==2 && card==2) {
				System.out.println(" === 영수증 === ");
				System.out.println("주문하신 메뉴는 "+smoothie+"입니다");
				System.out.println("현금결제 하셨습니다");
				System.out.println("적립번호 : "+point);
				System.out.println("이용해주셔서 감사합니다!");
				break;

		} else if(menu==3 && card==1) {
		
			System.out.println(" === 영수증 === ");
			System.out.println("주문하신 메뉴는 "+camomile+"입니다");
			System.out.println("카드번호 : "+cardNB);
			System.out.println("적립번호 : "+point);
			System.out.println("이용해주셔서 감사합니다!");
			
			break;
	} else if(menu==3 && card==2) {
		System.out.println(" === 영수증 === ");
		System.out.println("주문하신 메뉴는 "+camomile+"입니다");
		System.out.println("현금결제 하셨습니다");
		System.out.println("적립번호 : "+point);
		System.out.println("이용해주셔서 감사합니다!");
	}
		}
	}
}

 

결과는?

 

성공 ㅎㅎ

 

 

처음엔 if (menu==1, card==1) 이런 식으로도 될까?했는데 안 됐음 ㅠㅠ

그래서 아 조건을 같이 묶을 순 없는 건가...?ㅠㅠ 그러면 하나하나 다 다시 짜야되나? 싶었는데

책에서 &&와 ||를 본 기억이 있어서

&&를 사용해봤더니 성공 ㅎㅎ

 

혼자 고민고민하다가 문제가 풀리니까

뿌ㅡㅡㅡㅡ듯!!!!!

이것이 코딩의 맛...??

 

 

오늘은 푹 잘 수 있겠다!

728x90