Programming Language/Java

사용자의 입력값이 배열에 있거나 없을 때 값을 출력하기

Ma_Sand 2022. 2. 25. 20:07
반응형

어플로 어느 가게의 음식을 주문하려는데 이런 음식도 있는지 궁금해서 검색해봐야겠다.

"메뉴를 검색하세요."

이때, 입력한 메뉴가 배열에 있으면 "OOO을(를) 주문하시겠습니까?", 없으면 "OOO은(는)없는 메뉴입니다."를 출력한다.

public void restaurant() {
    
    // 식당에 있는 메뉴를 배열로 초기화
    String[] menu = {"떡볶이", "돈가스", "볶음밥", "라면", "떡국"};
    
    Scanner sc = new Scanner(System.in);  // 입력값을 받기 위해 Scanner 사용
    System.out.println("메뉴를 입력하세요.");
    String question = sc.nextLine();  // String 타입이므로 nextLine()으로.
    
    // 반복문을 이용. 인덱스는 0부터 시작하므로 초기값 0, 
    // .length로 배열의 길이 알 수 있음.
    for(int i = 0; i < menu.length; i++) {
    
    String result = "";  // 미리 결과값 변수를 만들어놓고 for문 밖에서 출력
    
        // 입력값.equals(가져오려는 값)
        if(question.equals(menu[i])) {   // 입력값이 배열에 있는 값과 같을 때
            result = question + "을(를) 주문하시겠습니까?";
            break;  // break;를 넣어야 문자가 계속 출력되지 않음.
        } 
        // 입력값이 배열에 없는 값일 때
        else {
            result = question + "은(는) 없는 메뉴입니다.";
        }
    }
}

▼실행결과

// 배열에 있는 입력값이면

메뉴를 입력하세요.
볶음밥
볶음밥을(를) 주문하시겠습니까?


// 배열에 없는 입력값이면

메뉴를 입력하세요.
초밥
초밥은(는) 없는 메뉴입니다.

 

if문에 break;가 없으면 제대로된 값이 나오지 않으므로 break;를 사용하여 원하는 값이 나오면 거기서 딱 멈추게 해야 한다. 그리고 문자열을 대입하고 싶은 변수로 데려올 때는 .equals를 사용하면 된다.

 

반응형