반복문 (Repetitive) - 실습문제 2

DONI·2021년 8월 9일
0

Java

목록 보기
12/46
post-thumbnail

문제

아래와 같은 주문 프로그램을 작성하고 종료 시 주문 내역을 출력하시오.

  • 잘못된 메뉴 선택 시 "잘못 선택하셨습니다. 다시 선택해주세요."를 출력하고 메뉴 화면을 반복 실행한다. y 입력 시 메뉴 화면을 반복 실행하고, n 입력 시 메뉴 화면이 종료되며 화면에 주문한 정보와 가격이 출력된다.
  • 🔍 추가 : y / n이 아닌 문자 입력 시 "잘못 입력하셨습니다. 다시 입력해주세요."를 출력하고 추가 주문 화면을 반복 실행한다.

입출력 예시


소스코드

import java.util.*;
public class Main {
	public static void main(String[] args) {
		// 문제 5 카페 주문 프로그램
		
		Scanner sc = new Scanner(System.in);
		int ameri = 0;
		int latte = 0;
		int vanilla = 0;

		Loop: while (true) {
			System.out.println("======== 메뉴 ========");
			System.out.println("1. 아메리카노	3500원");
			System.out.println("2. 카페라떼	4100원");
			System.out.println("3. 바닐라라떼	4300원");
			System.out.println("=====================");

			System.out.print("메뉴 선택 : ");
			int menu = sc.nextInt();
			System.out.print("수량 선택 : ");
			int amount = sc.nextInt();

			switch (menu) {
			case 1:
				ameri += amount;
				break;
			case 2:
				latte += amount;
				break;
			case 3:
				vanilla += amount;
				break;
			default:
				System.out.println("잘못 선택하셨습니다. 다시 선택해주세요.");
				continue;
			}

			while (true) {
				System.out.print("추가 주문하시겠습니까? (y/n) : ");
				char plus = sc.next().charAt(0);

				if (plus == 'Y' || plus == 'y')
					continue Loop;
				else if (plus == 'N' || plus == 'n') {
					System.out.println("=====================");

					if (ameri != 0)
						System.out.println("아메리카노 " + ameri + "잔 : " + ameri * 3500 + "원");
					if (latte != 0)
						System.out.println("카페라떼 " + latte + "잔 : " + latte * 4100 + "원");
					if (vanilla != 0)
						System.out.println("바닐라라떼 " + vanilla + "잔 : " + vanilla * 4300 + "원");

					System.out.println("=====================");
					
					int price = (ameri * 3500 + latte * 4100 + vanilla * 4300);
					System.out.println("총액 : " + price + "원");
					break;
					
				} else {
					System.out.println("잘못 입력하셨습니다. 다시 입력해주세요.");
					continue;
				}
			}
			break;
		}
		sc.close();
	}
}

🏹 다중 반복문 - 라벨 (label)

continue, break는 자신을 감싸고 있는 가장 안쪽의 반복문에서 실행된다. 이때, 자신에게서 가장 가까운 반복문이 아닌 특정 반복문을 지정하여 실행하고 싶을 때 라벨을 사용할 수 있다.
  💥 단, 프로그램 상의 오류 발생 가능성이 있어 추천하지 않음

  • 예) label name: while (true) { }
profile
틀린 내용이 있다면 댓글 또는 이메일로 알려주세요 ❤ꔛ❜

0개의 댓글