본문 바로가기

국비지원_핀테크

6일차_ [java] 제어문 ( if, else, else if )

 

 

 

 

 

 

if문

if문
if문 사용 예시 ( 각 if 제어문을 한번씩 다 돌고 출력 )
코드 진행 확인 ( 조건식이 true 이기 때문에 종속 문장이 실행된다 )
코드 진행 확인 ( 조건식이 false 이므로 종속문장을 실행하지 않고 다음 문장을 실행한다 )
첫번째 종속 문장 실행 ( num % 2 == 0 조건식이 true 이기 때문 )
두번째 종속문장 실행 ( num % 2 != 0 조건식이 true 이기 때문 )

 

 

 

 

 

if문 실습예제 1

1. 두 수를 입력 받아 큰 수를 출력 하시오

2. 세 수를 입력 받아 큰 수를 출력하시오

 

예제 풀이 1-1

두 수 비교 예제 풀이

 

예제 풀이 1-2

세 수 비교 예제 풀이 ( 최댓값을 변수로 선언하여 풀이도 가능, 최댓값을 변수로 선언하는 경우 몇번째 입력인지도 문자열 변수로 선언하여 몇번째 입력 값인지도 출력 가능 )

 

 

 

 

 

 

 

 

 

if - else 문

if - else문
if - else문 ( if 에서 조건식이 true 이기 때문에 else 문을 실행하지 않고 다음 코드 실행 )
if - else문 (  if문 조건식이 false 이기 때문에 else문의 조건식을 확인, else문의 조건식이 true 이므로 해당 코드 실행 후 다음 코드를 실행 )

 

 

 

 

 

 

 

 

 

 

중첩된 if 문

if문 안에 종속된 if 문이 또 존재

 

 

중첩된 if문 예제 및 풀이

중첩된 if문 예제 ( 초기화에서 문제가 생길 수 있으므로 최종 출력에서 값이 초기화 됐는지 확인 후 출력 )
콘솔 입력 및 출력
만약 입력 값이 0이라면? 초기화 문제로 인식하기 때문에 해당 문제 해결 필요함
최종 값을 출력하기 전에 signal 이라는 변수를 추가하여 입력 값으로 0 이 들어온 경우 signal 변수를 1로 초기화하여 0 이라는 값이 정상적으로 입력받은 값이라는 것을 signal 변수의 0 과 1 로 구분하여 사용한다 ( signal 이 0 인 경우 : 입력 값이 0 이들어온 경우가 아닌 최초의 초기화 값인 0 이 적용되 있는 경우, signal 이 1 인 경우 : 입력 값이 0 으로 들어와 최초의 초기화 값인 0 에서 입력 값 0 으로 초기화가 진행된 경우 )

 

 

 

 

 

 

 

 

 

 

if - else if 문

if - else if문
else if문 사용 예시

 

 

실습 예제

 

예제 풀이

풀이 완료

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

예제 직접 생성하고 풀어보기

생성한 예제

 

package if_;

import java.util.Scanner;

public class Test5 {
	public static void main(String[] args) {
		
		System.out.println("-------메뉴판-------");
		System.out.println("1. 햄버거(9,000원)");
		System.out.println("2. 피자(11,000원)");
		System.out.println("3. 치킨(32,000원)");
		System.out.println("4. 금액 반환");
		System.out.println("--------------------");
		
		int coin = 0;
		int menuNum = 0;
		int menuCost = 0;
		String menuName = null;
		int whereNum = 0;
		String where = null;
		
		Scanner sc = new Scanner(System.in);
		System.out.print("금액을 투입하세요 : ");
		coin = sc.nextInt();
		
		if (coin >= 9000) {
			
			System.out.print("메뉴를 선택하세요 : ");
			menuNum = sc.nextInt();
			
			if (menuNum == 1) {
				menuCost = 9000;
				menuName = "햄버거";
			}else if (menuNum == 2) {
				menuCost = 11000;
				menuName = "피자";
			}else if (menuNum == 3) {
				menuCost = 32000;
				menuName = "치킨";
			}
			
			if (menuNum < 1 && menuNum > 4) {
				System.out.printf("올바른 주문이 아닙니다. %d원 반환\n", coin);
			}else if (menuCost > coin){
				System.out.printf("투입 금액이 부족합니다. %d원 반환\n", coin);
			}else if (menuNum >= 1 && menuNum <= 3){
				System.out.print("식사 방식을 선택하세요. (1. 포장, 2.매장식사)");
				whereNum = sc.nextInt();
				
				if (whereNum != 1 && whereNum != 2) {
					System.out.printf("선택 오류 %d원 반환\n", coin);
				}else {
					if(whereNum == 1) {
						where = "포장";
					}else {
						where = "매장식사";
					}
					
					System.out.println("------------------");
					System.out.printf("주문 메뉴 : %s\n", menuName);
					System.out.println(where);
					System.out.printf("거스름돈 : %d원\n", (coin - menuCost));
					System.out.println("------------------");
					
				}
				
			}else if (menuNum == 4)	System.out.printf("투입 금액 %d원 반환", coin);
			
		}else {
			System.out.printf("주문할 수 있는 메뉴 없음 %d원 반환\n", coin);
		}
		
	}
}

예제 풀이 ( 복잡 )

 

package if_;

import java.util.Scanner;

public class Test6 {
	public static void main(String[] args) {
		

        System.out.println("-------메뉴판-------");
        System.out.println("1. 햄버거(9,000원)");
        System.out.println("2. 피자(11,000원)");
        System.out.println("3. 치킨(32,000원)");
        System.out.println("4. 금액 반환");
        System.out.println("--------------------");

        int coin = 0;
        int menunum = 0;
        int menucost = 0;
        String menuname = null;
        int wherenum = 0;
        String where = null;
        Boolean isValid; //최소 금액이 넘었는지 확인


        /**
         * 금액 투입
         */
        Scanner sc = new Scanner(System.in);
        System.out.print("금액을 투입하세요 : ");
        coin = sc.nextInt();

        //coin이 최소 금액은 넘어야지 기본적으로 주문이 가능함.
        if (coin >= 9000) {
            isValid = true;
        }
        else{
            isValid = false;
        }

        /**
         * 메뉴 선택
         */
        if(isValid){

            System.out.print("메뉴를 선택하세요 : ");
            menunum = sc.nextInt();

            if (menunum == 1) {
                menucost = 9000;
                menuname = "햄버거";

            }else if (menunum == 2) {
                menucost = 11000;
                menuname = "피자";

            }else if (menunum == 3) {
                menucost = 32000;
                menuname = "치킨";
            }
            else{
                System.out.printf("올바른 주문이 아닙니다. %d원 반환", coin);
            }
        }
        else{
            System.out.printf("주문할 수 있는 메뉴 없음 %d원 반환\n", coin);
        }

        /**
         * 구매 가능 여부 확인
         */
        if ((menunum == 1) || (menunum == 2) || (menunum == 3)) {

            if ((coin - menucost) >= 0) {

                System.out.print("식사 방식을 선택하세요. (1. 포장, 2.매장식사)");
                wherenum = sc.nextInt();
                if (wherenum == 1) {
                    where = "포장";
                }else{
                    where = "매장식사";
                }

                System.out.println("------------------");
                System.out.printf("주문 메뉴 : %s\n", menuname);
                System.out.println(where);
                System.out.printf("거스름돈 : %d원\n", (coin - menucost));
                System.out.println("------------------");
            }
            else{

                System.out.printf("투입 금액이 부족합니다. %d원 반환\n", coin);
            }
        }
    }
}

예제 풀이 ( 깔끔 )

728x90