JAVA 점심 메뉴를 추천하기

김태헌·2022년 9월 18일
post-thumbnail

국비 과정 중에 간단한 자바 프로젝트를 만들어 보았다.
사용자에게 점심 메뉴를 추천해주는 프로그램이다.
점심 메뉴를 먼저 추천해주고 선택지를 3개를 만들어 1이면 그대로 출력, 2일 경우 다른 메뉴를 추천, 3이라면 사용자가 메뉴를 입력, 추가하는 방식이다.
계속 2를 선택해 count값이 3이 넘어가면 메뉴가 n개입니다- 라고 출력하는 알고리즘도 있다.

package project;

import java.util.ArrayList;  
import java.util.List;
import java.util.Random;
import java.util.Scanner;

public class Menu {
	public static void ex3() {

Scanner sc = new Scanner(System.in);  // Scanner 변수 선언 - Scanner로 입출력값을 받아옴
Random rd = new Random(); // 랜덤값을 의미하는 변수 선언

ArrayList<String> menu = new ArrayList<String>();
menu.add("차돌된장찌개");  // 배열에 메뉴 추가
menu.add("치즈떡볶이");
menu.add("물냉면");

ArrayList<String> addMenu = new ArrayList<String>();

	int choice = rd.nextInt(3);		// 선택을 의미하는 choice
	int count = 0;				    // count값을 의미
    int random = rd.nextInt(3);     // 랜덤값을 의미
	String myMenu = "";

	while (true) {
		System.out.println("오늘의 점심은 " + menu.get(random) + " 입니다!");  // 시작시 출력
		while (true) {
			System.out.print(menu.get(random) + "가(이) 맘에 들면 1, 맘에 들지 않으면 2, 메뉴 선택 혹은 추가는 3을 눌러주세요");
			choice = sc.nextInt();
			sc.nextLine();

		if (choice == 1) {  // 선택지에서 1을 골랐다면 그대로 메뉴 출력
			System.out.println("**************************");
			System.out.println("오늘의 메뉴는 " + menu.get(random) + " 입니다.");
			System.out.println("**************************");
			System.exit(0);
			} 
			else if (choice == 2) { // 선택지에서 2를 고를 시
			if (random == 2) { // random 값이 2일 경우 random 값을 0으로 한다
				random = 0;
			} else { // random 값이 1일 경우에는 0+1 = 1의 값이 되고 random 값이 3일 경우에는 1+1 = 2의 값이 된다.
				random = (random % 3) + 1;
			}
			count = (count % 3) + 1; // count 변수

			if (count >= 3) { // 선택지에서 2를 계속 선택하다 count값이 3개가 넘어가면 우리는 메뉴가 3개입니다를 출력
				System.out.println("우리는 메뉴가 " + menu.size() + "개입니다!\n");
				continue; // continue 함수 사용
			}
			System.out.println("**************************");
			System.out.print("다른 추천 메뉴는 ");
            if (random >= 3)
				random = 0;

			System.out.println(menu.get(random) + "입니다.");
			System.out.println("**************************");
			continue; // continue 함수 사용
			} 
			else if (choice == 3) { // 선택지에서 3을 골랐을 경우
			System.out.print("원하는 메뉴를 입력해주세요 :");
			myMenu = sc.nextLine();

			if (myMenu.equals("차돌된장찌개")) {   // 기존 메뉴에 있던 메뉴 입력 시
				System.out.println("**************************");
				System.out.println("오늘 메뉴는 차돌된장찌개입니다");
				System.out.println("**************************");
				System.exit(0);
			} else if (myMenu.equals("치즈떡볶이")) {
				System.out.println("**************************");
				System.out.println("오늘 메뉴는 치즈떡볶이입니다");
				System.out.println("**************************");
				System.exit(0);
			} else if (myMenu.equals("물냉면")) {
				System.out.println("**************************");
				System.out.println("오늘 메뉴는 물냉면입니다");
				System.out.println("**************************");
				System.exit(0);
			} else {
				System.out.println(myMenu + "은(는) 곧 메뉴에 추가 될 예정입니다\n"); // 기존 메뉴에 없는 메뉴 입력 시
				addMenu.add(myMenu);
				continue;
			}

		}
		System.out.println("오늘의 메뉴는  " + menu.get(random) + " 입니다.");
		break;
			}
		}
profile
개발자 과정 국비 수료 중

0개의 댓글