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) 이런 식으로도 될까?했는데 안 됐음 ㅠㅠ
그래서 아 조건을 같이 묶을 순 없는 건가...?ㅠㅠ 그러면 하나하나 다 다시 짜야되나? 싶었는데
책에서 &&와 ||를 본 기억이 있어서
&&를 사용해봤더니 성공 ㅎㅎ
혼자 고민고민하다가 문제가 풀리니까
뿌ㅡㅡㅡㅡ듯!!!!!
이것이 코딩의 맛...??
오늘은 푹 잘 수 있겠다!
'혼자서 개발새발' 카테고리의 다른 글
카페 앱, 한글로 주문해보자(Arrays.asList().cotains(), .equals()) (0) | 2022.09.05 |
---|---|
printf로 출력하는 것? (0) | 2022.09.04 |
배열(Array)에 대해서 알아보다 (0) | 2022.09.02 |
반복문으로 카페 주문 앱을 만드는데 성공하다!(while, if, else) (0) | 2022.08.31 |
생활코딩에서 본 코드 Scanner로 입력값 줘보기!! + double을 int로 변환해보기 (1) | 2022.08.30 |